在django模型过滤器

时间:2017-05-24 17:31:22

标签: django django-models django-queryset

我需要根据两个日期字段和一个字段来查找唯一记录,如下所示。

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

用户在表单中提交Item和Date的值,这些值存储在变量user_date,user_item_no中。

我知道这应该使用过滤逻辑如下。但是如何在查询中引用这些字段? (负面情景将被丢弃)

过滤器:

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

注意:构建过滤器查询时,我必须引用过滤器本身中的模型字段( in())。

1 个答案:

答案 0 :(得分:0)

我想你会想要这样的东西

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