我继承了一个提供高中体育信息的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)一起存在。我们将在以后开发并提交适当的错误报告,但现在,找到一个解决方法是一个更高的优先级。 –