如何在Django中使用精确的字段值计算所有ForeignKey模型?

时间:2015-10-15 18:17:53

标签: python django django-queryset django-database django-aggregation

我不确定它是否可能,但我想计算与具有确切vote_type属性的模型相关的所有投票。

这是模特:

Link.objects.annotate(ups=Count('votes')).order_by('-ups')

我用这个计算所有选票:

Link.objects.annotate(ups=Count('votes__vote_type__exact=1')).order_by('-ups')

并且想到也许我可以用它来达到我想要的目的:

...
date_end = models.DateTimeField(verbose_name="Finish date and time", default=None, null=True, blank=True)
...

但似乎我不能在这里使用filter()语法。

我正在使用Django 1.8.4。

1 个答案:

答案 0 :(得分:2)

您可以在执行注释之前根据类型过滤投票。

Link.objects.filter(votes__vote_type=1).annotate(ups=Count('votes')).order_by('-ups')

来源:https://docs.djangoproject.com/en/1.8/topics/db/aggregation/#order-of-annotate-and-filter-clauses