我在django中有一个查询集,条件如下:
query_set = MyModel.objects.annotate(TWWByRuns=(
Case(
When(Q(toss_winner=F('winner')) & Q(win_by_runs=0), then=1),
output_field=FloatField(), default=0)
)
).values('TWWByRuns')
我想使用django内置的sum函数在query_set
中的值等于then=1
时等于1。我知道不用条件就可以使用sum函数,但是在这里,因为我有条件,所以我应该在此query_set
中使用sum函数吗?
答案 0 :(得分:3)
在这种情况下,计数更有意义:
MyModel.objects.filter(toss_winner=F('winner'), win_by_runs=0).count()
因此,我们在这里仅检查有多少MyModel
个记录满足给定条件。