如何在Django中按日期范围过滤记录?

时间:2018-10-05 10:09:43

标签: python django django-rest-framework

我可以按用户指定的日期范围过滤记录吗?

我想在Django中创建一个Daterange表单(它将包含开始日期和结束日期),在该表单中,用户将提供其特定日期,并将根据用户给定的日期来过滤对象...

我可以在Django中执行此操作吗?

1 个答案:

答案 0 :(得分:3)

是的,说模型看起来像:

File "/opt/.virtualenvs/lottostar/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 51, in load_middleware
    raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
ImproperlyConfigured: Error importing middleware session_security.middleware: "cannot import name AppRegistryNotReady"

您可以使用以下方法获取class MyModel(models.Model): date = models.DateField()MyModel之间的所有2018-1-1对象:

2018-2-9

因此,您可以使用如下形式:

from datetime import date

MyModel.objects.filter(date__range=(date(2018,1,1), date(2018, 2, 9)))

,然后在视图中进行过滤:

class DateRangeForm(forms.Form):
    start_date = forms.DateField()
    end_date = forms.DateField()