Django注释按注释值过滤

时间:2020-10-31 23:12:56

标签: python django filter orm aggregation

这是我的模特:

Seller (user, name)
Order (seller, customer, amount)
Bonus (seller, required_amount, value)

我需要为每位卖家注释一些当前的客户统计信息(客户订单的金额总和最大奖励价值,其中required_amount少于总客户金额)

Sellers.objects.filter(orders__customer=request.user).annotate(
            customer_amount=models.Sum(
                'orders__amount',
                filter=models.Q(orders__customer=request.user)
            ),
            bonus_value=models.Max(
                'bonuses__value',
                filter=models.Q(bonuses__required_amount__lte=models.F('customer_amount'))
            )
        )

我有一个错误

aggregate functions are not allowed in FILTER
LINE 1: ...ue") FILTER (WHERE "sellers_bonuses"."required_amount" <= SUM("order...

但是我不需要汇总,对于所有卖方,我已经有一个汇总值“ customer_amount”。我该怎么用?

0 个答案:

没有答案