我有一堆Order對象,每個都連接到一個或多個OrderRow對象(與Order.order_rows.all(可視爲與其父對象的反向關係) ))。Django:根據相關模型的計數差異過濾模型
每個OrderRow有一個collection_status屬性,可以是'收集','未收集'或一堆其他特殊值。每個訂單都有一個狀態屬性,其中一個有效值是'處理'。
我很遺憾嘗試構建一個訂單查詢集,該訂單查詢集使用以下條件列出訂單對象:訂單狀態爲'處理',其訂單行的數量小於其OrderRows的總數。完全沒有收集或部分收集但未完全收集的訂單,即。
爲了把它在一個明確的方式:
訂購兩排,既有「未收」:列入QS
訂單有三排,一個「收集」,兩個「未收」:包含在QS
訂購兩行,均爲'收集':不包含在QS中!
(可以替換「未收」與不「收集」和標準仍然是相同的任何其他值;它的「收集」與任何其他collection_status)
我就得到作爲Order.objects.filter(status__exact ='處理'),但除此之外,我對註釋,Q()等對象的嘗試都失敗了。
如果您選擇至少有一個「未收集」的訂單,該怎麼辦?那不是那個意思嗎? 'filter(order_rows__collection_status =「uncollected」)' – Ski 2011-01-10 18:09:21