Python Django中的_范围函数存在问题
我需要做的是过滤特定区域和地区以及日期范围内的所有销售对象。因此,我在查询中使用了_range函数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)) 我的所有日期都以字符形式存储在模型中,因此我使用
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
。正确。你帮了大忙。任何感谢的话都不够。还有,伙计,你真有耐心。再次感谢。