使用过滤器集过滤DateTime字段和Date Field

时间:2017-07-31 14:20:13

标签: django django-filter django-filters

如何仅使用日期字段过滤日期时间字段。 使用下面的模型和过滤器

http://localhost:8020/applications/?created=19-07-2017返回一个空的查询集,即使是创建日期的记录= 19-07-2017(日期时间内记录的创建日期

在我的MODELS.PY

Class Application(models.Model):
  created = models.DateTimeField(auto_now=False, auto_now_add=True)

在我的FILTERS.PY

import django_filters

class ApplicationFilter(django_filters.FilterSet)
    created = django_filters.DateTimeFilter( label='Created')

    class Meta:
       model = Application
       fields = ['created']

3 个答案:

答案 0 :(得分:2)

使用包含作品。 请改用DateFilter并指定日期格式

created=django_filters.DateFilter(input_formats=['%Y-%m-%d','%d-%m-%Y'],lookup_expr='icontains'

答案 1 :(得分:1)

使用contains

    created = django_filters.DateTimeFilter(name='created',lookup_expr='contains')

也许还需要更改dateformat,yyyy-mm-dd

答案 2 :(得分:0)

在您的filters.py中写上:

import django_filters

class ApplicationFilter(django_filters.FilterSet)
    class Meta:
       model = Application
       fields = {'created': '__all__'}

在您的网址中:

http://localhost:8020/applications/?created__date=19-07-2017