我需要做的是过滤特定区域和区域中某个日期范围内的所有销售对象。因此,我在查询中使用了__range函数
start = start_date.strftime('%d-%b-%y')
end = end_date.strftime('%d-%b-%y')
Sales.objects.filter(zone_code=zone_code_, region_code=region_code_, sales_date__range(start,end))
我所有的日期都存储为模型中的字符,因此我使用strftime()将输入日期更改为该格式。 但是此查询给我的对象超出了指定范围,有时甚至是空集。
答案 0 :(得分:2)
__range
不是函数,不能调用。它是Field lookup,需要附加到模型字段名称中,并作为关键字参数的关键字传递给例如filter()
函数。该值必须是元组,且起始日期和结束日期的范围为:
Sales.objects.filter(
zone_code=zone_code_,
region_code=region_code_,
sales_date__range=(start, end), # pass the tuple as a kwarg
)
请注意=
元组之前的(start, end)
!
您不需要将start
或end
转换为字符串。