Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django __中的过滤器不工作_Django_Django Admin Filters - Fatal编程技术网

Django __中的过滤器不工作

Django __中的过滤器不工作,django,django-admin-filters,Django,Django Admin Filters,我继承了一个Django应用程序,它提供高中体育信息。我最近收到一个请求,要求修改某一组数据,以便只显示当前季节的信息,我是通过以下方式完成的: teams = Team.objects.filter(season__school_year__in=school_year_filter_list) (school\u year\u filter\u list包含[1,3]) 此查询导致(Postgres数据库池/复制实用程序)出错,因此我无法使用它。顺便说一句,当我绕过pgpool并直接使用P

我继承了一个Django应用程序,它提供高中体育信息。我最近收到一个请求,要求修改某一组数据,以便只显示当前季节的信息,我是通过以下方式完成的:

teams = Team.objects.filter(season__school_year__in=school_year_filter_list)

school\u year\u filter\u list
包含
[1,3]

此查询导致(Postgres数据库池/复制实用程序)出错,因此我无法使用它。顺便说一句,当我绕过pgpool并直接使用Postgres时,查询在pythonshell中正常工作。然而,我们的网络体系结构决定了pgpool的使用,因此我正在尝试寻找另一种方法来检索相同的数据

你能帮我确定另一种方法让所有球队在本学年都有一个赛季吗

(简化)模型如下所示:

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)
“_学年”表如下所示:

 id | school_year 
----+-------------
  1 | 2010-2011
  2 | 2009-2010
  3 | 2011-2012
你试过了吗
teams=Team.objects.filter(季节\学校\年份\ id \学校\年份\过滤器\列表)
?
您的
school\u year\u filter\u list
是一个学年ID列表,这对不对?

您尝试过
teams=Team.objects.filter(季节\学校\年份\ id \学校\年份\过滤器\列表)
?
你的
school\u year\u filter\u list
是一个学年ID列表,这对不对?

小提示:我看到了'django admin'标签,所以我认为你应该将seasure\u school\u year\u in=[1,2]添加到URL查询字符串中,比如/admin/sports/team/?seasure\u school\u year\u in=[1,2],对吗

如果是这样,您是否认为school_year_filter_list包含list
[1,3]
,而不是包含list
'[1,3]'的
repr
的字符串


你能给我们提供pgpool或Django ORM返回的错误数据吗?

小提示:我看到了'Django admin'标签,所以我认为你应该将season\u school\u year\u in=[1,2]添加到URL查询字符串中,比如/admin/sports/team/?season\u school\u year\u in=[1,2]这样正确吗

如果是这样,您是否认为school_year_filter_list包含list
[1,3]
,而不是包含list
'[1,3]'的
repr
的字符串


你能给我们提供pgpool或Django ORM返回的错误数据吗?

最后,我修改了另一个模型来实现这一点。我没有解析年份以获取活动季节,而是在学年模型中添加了一个“活动”标志,并修改了查询以检查该标志:

def queryset(self, request):
    qs = super(PlayerYearAdmin, self).queryset(request)
    return qs.filter(team__season__school_year__active=True)

最后,我修改了另一个模型来实现这一点。我没有解析年份以获取活动季节,而是在学年模型中添加了一个“活动”标志,并修改了查询以检查该标志:

def queryset(self, request):
    qs = super(PlayerYearAdmin, self).queryset(request)
    return qs.filter(team__season__school_year__active=True)

谢谢你的回复。查询筛选器在admin.py中硬编码,不通过URL提供
school\u year\u filter\u list
绝对是一个列表,而不是字符串。pgpool错误很简单:“psycopg2.InterfaceError:连接已关闭”经过广泛测试,我们确定这是Django与pgpool通信的一个错误,可能是驱动程序问题。感谢您的回复。查询筛选器在admin.py中硬编码,不通过URL提供
school\u year\u filter\u list
绝对是一个列表,而不是字符串。pgpool错误很简单:“psycopg2.InterfaceError:连接已关闭”经过广泛测试,我们确定这是Django与pgpool通信的一个错误,可能是驱动程序问题。
school\u year\u filter\u list
是学年ID列表。我的理解是不需要“\u id”,但我按照您建议的方式尝试了筛选,得到了相同的结果。
学年筛选列表
是学年id列表。我的理解是不需要“\uuu id”,但我按照您建议的方式尝试了过滤器,得到了相同的结果。无论使用何种数据库,这种基本查找都不会导致问题。此外,如果它是一个真正的bug,那么应该正确地识别它,以便在Django代码中解释它。如果您提供由查找引起的错误的详细信息,这将非常有帮助。我忍不住想象,
查找中的
\u会在某个时候再次出现,或者你最终不得不为一些本不应该成为问题的东西想出一些非常奇怪的修复方法。@Jordan Reiter:谢谢你的反馈。我们在应用程序的其他地方使用
\u进行查找,没有问题。这个问题只存在于这个特定的查询中,并且只存在于pgpool的特定版本(3.0.3、3.0.4)。稍后我们将致力于开发并提交一份适当的bug报告,但目前,找到一个解决方案是一个更高的优先级。无论使用何种数据库,这种基本的查找都不会导致问题。此外,如果它是一个真正的bug,那么应该正确地识别它,以便在Django代码中解释它。如果您提供由查找引起的错误的详细信息,这将非常有帮助。我忍不住想象,
查找中的
\u会在某个时候再次出现,或者你最终不得不为一些本不应该成为问题的东西想出一些非常奇怪的修复方法。@Jordan Reiter:谢谢你的反馈。我们在应用程序的其他地方使用
\u进行查找,没有问题。这个问题只存在于这个特定的查询中,并且只存在于pgpool的特定版本(3.0.3、3.0.4)。我们将在稍后开发并提交一份适当的bug报告,但目前,找到一个解决方案是一个更高的优先级。