【发布时间】:2015-01-14 16:25:28
【问题描述】:
我已经编辑了来自tutorial 的代码,使索引视图看起来像这样:
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_poll_list'
def get_queryset(self):
"""
Return the last five published polls (not including those set to be
published in the future, or those without choices).
"""
return Poll.objects.filter(
pub_date__lte=timezone.now(), choice__choice_text__isnull=False
).order_by('-pub_date')[:5]
但现在我的索引看起来像这样:
- 你在做什么?
- 你在做什么?
- 你在做什么?
- 怎么了?
- 怎么了?
这是怎么发生的?我应该如何解决这个问题?
(ps 我不知道该给谁使用过滤器,所以我从这个question 复制了代码。这就是它不起作用的原因吗?双下划线__ 符号如何在过滤器中工作?)子>
编辑:我检查了管理视图,数据库中似乎只有一个民意调查(我没有直接检查),但我确信它的设置方式我不能有多个具有相同 ID 的民意调查(在这种情况下,所有“你在做什么?”民意调查的 ID 为 2,所有“怎么样?”民意调查的 ID 为 1)。
【问题讨论】:
-
也许它与代码中的错误无关。您可能测试并重新加载了该站点的页面,因此检查数据库,也许您看到的民意调查确实在数据库中,重复。对于双下划线符号,您可以在此处找到完整的解释 docs.djangoproject.com/en/1.7/topics/db/queries/#field-lookups
-
@LudovicViaud 我已经尽力打折了。
-
您可能只需要查询集上的
.distinct()。
标签: python django double-underscore