Python Django中的_范围函数存在问题

Python Django中的_范围函数存在问题,python,django,django-queryset,Python,Django,Django Queryset,我需要做的是过滤特定区域和地区以及日期范围内的所有销售对象。因此,我在查询中使用了_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)) 我的所有日期都以字符形式存储在模型中,因此我使用

我需要做的是过滤特定区域和地区以及日期范围内的所有销售对象。因此,我在查询中使用了_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()将输入日期更改为该格式。 但此查询给我的对象超出了指定范围,有时是空集。

不是函数,无法调用。它是一个需要附加到模型字段名并作为关键字参数的键传递到例如
filter()
函数的函数。该值必须是具有范围的开始和结束日期的元组:

Sales.objects.filter(
    zone_code=zone_code_, 
    region_code=region_code_, 
    sales_date__range=(start, end),  # pass the tuple as a kwarg
)
注意
(开始,结束)
元组之前的
=

您不需要将
开始
结束
转换为字符串。

不是函数,无法调用。它是一个需要附加到模型字段名并作为关键字参数的键传递到例如
filter()
函数的函数。该值必须是具有范围的开始和结束日期的元组:

Sales.objects.filter(
    zone_code=zone_code_, 
    region_code=region_code_, 
    sales_date__range=(start, end),  # pass the tuple as a kwarg
)
注意
(开始,结束)
元组之前的
=


您不需要将
开始
结束
转换为字符串。

我在模型中已将日期存储为字符串,因此如果我不将开始和结束转换为字符串,我将得到一个空值set@ShashankJ为什么要将日期存储为字符串?我必须从csv文件填充数据库,所以我只是从csv文件中复制了数据,并将其存储为字符,而不是datetime对象。@ShashankJ,但这意味着数据库将使用日期字符串中字符的字母顺序进行比较。这不是你想要的。您应该将数据迁移到
DateTimeField
。正确。你帮了大忙。任何感谢的话都不够。还有,伙计,你真有耐心。再次感谢。我已经将日期作为字符串存储在模型中,因此如果我不将开始和结束转换为字符串,我将得到一个空值set@ShashankJ为什么要将日期存储为字符串?我必须从csv文件填充数据库,所以我只是从csv文件中复制了数据,并将其存储为字符,而不是datetime对象。@ShashankJ,但这意味着数据库将使用日期字符串中字符的字母顺序进行比较。这不是你想要的。您应该将数据迁移到
DateTimeField
。正确。你帮了大忙。任何感谢的话都不够。还有,伙计,你真有耐心。再次感谢。