django queryset with count filter

时间:2013-03-27 00:29:53

标签: django filter count

我已经完成了整个Django教程,但是我无法弄清楚如何让网站只显示选举数量大于0的民意调查。 我知道Poll.objects.get(pk = 1).choice_set.count()会返回我的选择数量。 所以我尝试过滤Poll.objects.filter(choice_set.count()> 0)并且它不起作用。 有谁可以帮助我吗?感谢

这是我的实际查询集。

queryset=Poll.objects.filter(pub_date__lte=timezone.now).order_by('-pub_date')[:5]

1 个答案:

答案 0 :(得分:4)

queryset=Poll.objects.annotate(count=Count('choice')).filter(
    pub_date__lte=timezone.now, count__gt=0).order_by('-pub_date')[:5]