それぞれが 1 つ以上の OrderRow オブジェクトに接続されている多数の Order オブジェクトがあります (Order.order_rows.all() を使用して、親の Orders と逆の関係として表示されます)。
各 OrderRow にはcollection_status属性があり、「collected」、「uncollected」、またはその他の特別な値を指定できます。各注文にはステータス属性があり、有効な値の 1 つは「処理中」です。
次の基準で Order オブジェクトをリストする Order QuerySet を構築しようとして途方に暮れています: 注文ステータスは「処理中」であり、その OrderRows の数はそのcollection_status='collected'
OrderRows の合計数よりも少なくなっています。まったく回収されていない、または部分的に回収されているが、完全には回収されていない注文、つまり。
明示的な方法でそれを置くには:
2 行の注文、両方とも「未回収」:
3 行の QS
注文に含まれます。
(「収集されていない」を「収集されていない」他の値に置き換えることができ、基準は同じです。「収集された」対他の collection_status です)
私は Order.objects.filter(status__exact='processing') まで取得しましたが、それを超えて、注釈、 Q() オブジェクトなどでのすべての試みは惨めに失敗しました。