0

我有以下子查询:

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

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

4

1 回答 1

0

我找到了一种没有的方法Subquery

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

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

于 2018-10-23T20:25:57.370 回答