首页 > 解决方案 > 如何使用每个对象的额外字段 boolean_count 计算查询集中的真实布尔字段,但 django 中每条记录的计数应该相同

问题描述

在这里,我在每条记录中得到计数 1:

Model.objects.filter().values('id', 'username', 'email', 'is_boolean')\
    .annotate(boolean_count=Count('is_boolean', filter=Q(is_boolean=True)))

但如果我这样做:

Model.objects.filter().values('is_boolean')\
    .annotate(boolean_count=Count('is_boolean', filter=Q(is_boolean=True)))

然后我得到正确的计数为真,0 为假。

但我希望对所有第一个查询都正确计数。

表示如果 3 个中有 2 个是 is_boolean true,那么对于所有其他字段,计数应该是 2,2,2。

我不知道如何实现它。我没有使用聚合,因为它只返回计数值,但我也想要模型的其他字段。

标签: djangoannotate

解决方案


推荐阅读