2017-05-24 31 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

很高兴它的工作。 –