django 无法计算嵌套 SUM 上的总和

django cannot compute sum on nested SUM

我是 运行 这个查询,我在其中执行 price*inventory1 并且它有效,但是当我尝试执行时 price*(inventory1+inventory2) django 抛出错误。

这个有效

        results = (
            Card.objects.values("rarity")
            .annotate(price=Sum(F("price") * F("inventory1")))
            .order_by()
        )

这不是:(

       results = (
            Card.objects.values("rarity")
            .annotate(
                price=Sum(
                    F("price")
                    * Sum(
                        F("inventory1")
                        + F("inventory2")
                    )
                )
            )
            .order_by()
        )

我觉得我做错了什么。所以,我怎样才能在 django ORM 中做到这一点。

没有理由使用内部总和,您可以使用:

Card.objects.values('rarity').annotate(
    price=Sum(
        <strong>F('price') * (F('inventory1') + F('inventory2'))</strong>
    )
).order_by()