django FilterSet for end of day



如何使查询从开始日期到结束日期为 FilterSet 获取正确的日期。 现在,如果您键入 start_filter_date = 2018.05.23 并且end_filter_date = 2018.05.25。然后start_filter_date=2018.05.23T00:00和end_filter_date=2018.05.25T00:00。时间是 00:00,但需要 23:59?

我的班级如下:

class TaskFilterSet(django_filters.rest_framework.FilterSet):
id = django_filters.NumberFilter(name="pk")
start_filter_date = django_filters.DateFilter(name="date_added", lookup_expr="gte")
end_filter_date = django_filters.DateFilter(name="date_added", lookup_expr="lte")

我认为最好的方法是将gtelt一起使用,但date_added + timedelta(1)发送结束日期,我不使用 Django 过滤器,但基于提示.html#solution-1-magic values,您可以尝试:

class EndFilter(django_filters.DateFilter):
def filter(self, qs, value):
if value:
value = value + timdelta(1)
return super(EndFilter, self).filter(qs, value)

class TaskFilterSet(django_filters.rest_framework.FilterSet):
id = django_filters.NumberFilter(name="pk")
start_filter_date = django_filters.DateFilter(name="date_added", lookup_expr="gte")
end_filter_date = EndFilter(name="date_added", lookup_expr="lt")

最新更新