我有一个名为start_time
的模型,它的类型是DateTimeField
。我想查询与此字段重叠的范围。Django过滤器包含一个DateFromToRangeFilter
过滤器,它对dates非常有效,但对datetime字符串不起作用(除非我查询不正确)。以下是我目前所做的尝试:
创建了DatetimeFromToRangeFilter
:
class DatetimeRangeField(RangeField):
def __init__(self, *args, **kwargs):
fields = (
forms.DateTimeField(),
forms.DateTimeField())
super(DatetimeRangeField, self).__init__(fields, *args, **kwargs)
def compress(self, data_list):
if data_list:
start_datetime, stop_datetime = data_list
if start_datetime:
start_datetime = datetime.combine(start_datetime, time.min)
if stop_datetime:
stop_datetime = datetime.combine(stop_datetime, time.max)
return slice(start_datetime, stop_datetime)
return None
class DatetimeFromToRangeFilter(RangeFilter):
field_class = DatetimeRangeField
将此用作筛选器:
^{pr2}$当我用/test_runs/?start_time_0=2015-09-05
或/test_runs/?start_time_0=2015-09-05%2000:00:00
查询端点时,它不会过滤查询集。在
当我将过滤器改为django_filters.DateFromToRangeFilter
时,第一个查询返回适当的queryset,第二个查询返回空的queryset。在
与django过滤器提供的DateRangeField相比,您似乎有一些不正确的缩进。在
在django_过滤器中/字段.py公司名称:
在您的代码中:
^{pr2}$试着让缩进级别匹配,这样可以解决你的问题。在
相关问题 更多 >
编程相关推荐