我有一个模型的查询集" A"我尝试做一些值/注释计算。型号" A"与模型B有一个ManyToMany关系。从模型" A",我希望能够访问" B"的过滤子集。基于" B"中的字段的模型。我如何改变我的模型" A"支持这种模式?
虚拟例子:
{{1}}
我想回复一篇关于文章的出版物和读者总数的查询,仅针对数字的出版物。
答案 0 :(得分:1)
from django.db.models import Sum, Case, When, IntegerField
Article.objects.annotate(
total_readership=Sum(
Case(
When(published_in__is_digital=True, then=1),
output_field=IntegerField()
)
)
)