【发布时间】:2016-07-19 07:43:38
【问题描述】:
我已经按照 django 教程到达tutorial05。
我试图不显示教程所说的空投票,所以我添加了这样的过滤条件:
class IndexView(generic.ListView):
...
def get_queryset(self):
return Question.objects.filter(
pub_date__lte=timezone.now(),
choice__isnull=False
).order_by('-pub_date')[:5]
但这会返回两个完全相同的对象。
我认为 choice__isnull=False 导致了问题,但不确定。
【问题讨论】:
-
您在数据库中有两个不同的对象具有相同的值
-
检查对象 id 是否相同,然后返回重复记录,否则您会更清楚。
-
@Sayse 我查了表 polls_question,但没有重复的投票。
-
filter不能两次返回同一个对象。您必须覆盖了您没有向我们展示的默认管理器(我对此表示怀疑),或者您有两个不同的对象。或者它在视图中的不正确逻辑 -
@Sayse 不正确,
filter能够两次返回同一个对象,见Django documentation fordistinct
标签: django