子查询字段的总和django

Sum of Subquery fields django

我有以下子查询:

Subquery(
         ContestTaskRelationship.objects.filter(
             contest=contest,
             solved=OuterRef('id')
         ).values('cost').all()
)

然后我需要用每个子查询返回的 cost 值的总和来注释我的 QuerySet。怎么做?将子查询包装在 Sum returns 中,仅包含每个子查询的第一个元素。

我找到了不用Subquery的方法:

cost_sum=Sum(
            Case(
                When(
                    contest_task_relationship__contest=contest,
                    then='contest_task_relationship__cost'
                ),
                default=V(0),
                output_field=IntegerField()
            )
        )

这不是一种优雅的方式,但它确实有效。