我繼承了一個提供高中體育信息的Django應用程序。__in過濾器不起作用
teams = Team.objects.filter(season__school_year__in=school_year_filter_list)
(school_year_filter_list
包含[1,3]
)
此查詢導致一個錯誤:所以從當前季節,我完成這種方式僅顯示信息我最近收到修改一組特定的數據的請求pgpool(Postgres數據庫池/複製實用程序),所以我不能使用它。作爲一個方面說明,查詢在Python shell中正常工作,並且繞過pgpool並直接使用Postgres。但是,我們的網絡體系結構決定使用pgpool,因此我試圖找到一種替代方法來檢索相同的數據。
你能幫助我確定另一種方法來獲得當前SchoolYear中所有球隊的一個賽季嗎?
(簡化)模型是這樣的:
class Team(models.Model):
season = models.ForeignKey(Season)
class Season(models.Model):
school_year = models.ForeignKey(SchoolYear, blank=True, null=True)
class SchoolYear(models.Model):
school_year = models.CharField(max_length=150)
的 '_schoolyear' 表如下所示:
id | school_year
----+-------------
1 | 2010-2011
2 | 2009-2010
3 | 2011-2012
這樣一個基本的查詢應該不會導致出現問題,無論使用的數據庫的。此外,如果它是一個真正的bug,它應該被正確識別,以便可以在Django代碼中進行說明。如果您提供了查找引起的錯誤的詳細信息,那將非常有用。我不禁想象'__in'查找會在某個時候再次出現,或者你最終不得不想出一些甚至不應該成爲問題的奇怪修復。 –
@Jordan Reiter:謝謝您的反饋。我們在應用程序的其他地方使用'__in'查找沒有問題。這個問題只存在於這個特定的查詢中,並且只與特定版本的pgpool(3.0.3,3.0.4)一起存在。我們將在以後開發並提交適當的錯誤報告,但現在,找到一個解決方法是一個更高的優先級。 –