2017-05-24 32 views
0

我有一個需求來查找一個獨特的記錄取決於兩個日期字段和一個字段如下。使用關係運算符在Django模型篩選器中的幾個字段

Start Date 
End Date 
Item No. (There will be unique item numbers.) 
Owner ID - This is what should be retrieved from the model. 

提供:數據模型被實現這樣的方式,在開始內和結束日期項目只能由一個所有者被佔有。

要求:當給定的產品編號和日期,發現 的所有者一天之內的項目。

假設這存儲在名爲的模型中,所有權爲。 模型有以下字段來存儲開始日期,結束日期和項目編號。

Ownership.start_date 
Ownership.end_date 
Ownership.item_no 

用戶以變量user_date,user_item_no存儲的表單提交Item和Date的值。

我知道這應該使用過濾邏輯如下。但是,我如何在查詢中引用這些字段? (負的情況將被丟棄)

篩選:

(user_date >= Ownership.start_date) AND (user_date <= Ownership.end_date) 
AND (Ownership.item_no = user_item_no) 

注:在構建過濾器查詢我要參考在過濾器本身模型的字段(內())。

回答

0

我想你會想這樣的事情

ownerships = Ownership.objects.filter(start_date__lte=user_date, end_date__gte=user_date, item_no = user_item_no) 
+0

謝謝。這實際上是我需要的。 –

+0

很高興它的工作。 –