Да, скажем, модель выглядит так:
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()
и затем фильтруйте в представлении как:
def my_view(request):
if request.method == 'POST':
form = DateRangeForm(request.POST)
if form.is_valid():
qs = MyModel.objects.filter(date__range=(
form.cleaned_data['start_date'],
form.cleaned_data['end_date']
))
# do something
else:
# do something
pass
else:
# do something
pass