按日期过滤(Django)

时间:2015-10-26 00:18:17

标签: django filter

想象一下,我有一个列表和一个表单按日期过滤此列表。

enter image description here

有没有人有关于如何在表单上执行此过滤器的任何示例?

我在shell中得到了它,但我无法在表单中实现模板。

$ ./manage.py shell
>>> from core.models import Job
>>> import datetime
>>> start_date=datetime.date(2015,8,1)
>>> end_date=datetime.date(2015,9,1)
>>> q=Job.objects.filter(data_job__range=(start_date,end_date))
>>> for i in q: i.nome_job, i.data_job

我尝试views.py

p = Job.objects.all()
q = self.request.GET.get('search_box')
# buscar por job
if q is not None:
    p = p.filter(nome_job__icontains=q)
# dmin = datetime.date(2015, 8, 1)
dmin = self.request.GET.get('min_date')
dmax = self.request.GET.get('max_date')
p = p.filter(data_job__lte=dmin,data_job__gte=dmax)

我需要一些东西。

1 个答案:

答案 0 :(得分:2)

您必须在之前转换日期:

from datetime import datetime

dmin = self.request.GET.get('min_date')
dmax = self.request.GET.get('max_date')
min_date = datetime.strptime(dmin, "%d/%m/%Y")
max_date = datetime.strptime(dmax, "%d/%m/%Y")

p = p.filter(data_job__gte=min_date,data_job__lte=max_date)