我不确定它是否可能,但我想计算与具有确切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。
答案 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