例如,我们有以下模型:
我想排除所有满足条件(p.a > 0 or p.b > 0) and p.c == 0
的订单。
到目前为止,我已经尝试过:
Order.objects.all().exclude(
Q(products__a__gt=0)
| Q(products__b__gt=0),
products__c=0,
)
但是,如果任何相关产品满足条件,此查询将过滤掉订单。
通过将逻辑从ALL转换为ANY来解决此问题:
Order.objects.filter(user=user).filter(
Q(products__c__gt=0)
| Q(products__a=0, products__b=0)
)