我有以下子查询:
Subquery(
ContestTaskRelationship.objects.filter(
contest=contest,
solved=OuterRef('id')
).values('cost').all()
)
然后,我需要用每个子查询返回的cost
值的总和来注释我的QuerySet。怎么做?在Sum中包装子查询只会返回每个子查询的第一个元素。
答案 0 :(得分:0)
我找到了一种没有Subquery
的方法:
cost_sum=Sum(
Case(
When(
contest_task_relationship__contest=contest,
then='contest_task_relationship__cost'
),
default=V(0),
output_field=IntegerField()
)
)
这不是一种优雅的方法,但是可以。