我有一堆 Order 对象,每个对象都连接到一个或多个 OrderRow 对象(通过 Order.order_rows.all() 作为与其父 Orders 的反向关系可见)。
每个 OrderRow 都有一个collection_status属性,可以是 'collected'、'uncollected' 或一堆其他特殊值。每个订单都有一个状态属性,其中一个有效值是“处理中”。
我在尝试构建一个列出具有以下条件的 Order 对象的 Order QuerySet 时不知所措:订单状态为“处理中”,其collection_status='collected'
OrderRows 的计数小于其 OrderRows 的总数。即完全未收集或部分收集但未完全收集的订单。
明确地说:
两行订单,均“未收集”:包含在 QS
订单中,包含三行,一个“已收集”,两个“未收集”:包含在 QS
订单中,两行均“已收集”:未包含在 QS 中!
(您可以将 'uncollected' 替换为任何其他不是 'collected' 的值,并且条件仍然相同;它是 'collected' 与任何其他 collection_status)
我已经做到了 Order.objects.filter(status__exact='processing'),但除此之外,我在注释、Q() 对象等方面的所有尝试都失败了。