Nil*_*Kar 2 python django django-rest-framework
我可以按用户提供的日期范围过滤记录吗?
我想在 django 中创建一个 Daterange 表单(它将包含开始日期和结束日期),用户将在其中提供他们的特定日期,并根据用户提供的日期过滤对象...
我可以在 Django 中执行此操作吗?
是的,假设模型看起来像:
class MyModel(models.Model):
date = models.DateField()Run Code Online (Sandbox Code Playgroud)
你可以得到所有MyModel对象之间2018-1-1并2018-2-9用:
from datetime import date
MyModel.objects.filter(date__range=(date(2018,1,1), date(2018, 2, 9)))Run Code Online (Sandbox Code Playgroud)
因此,您可以使用如下形式:
class DateRangeForm(forms.Form):
start_date = forms.DateField()
end_date = forms.DateField()Run Code Online (Sandbox Code Playgroud)
然后在视图中过滤,如:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5219 次 |
| 最近记录: |