【发布时间】:2017-12-01 12:51:38
【问题描述】:
所以我正在基于通用列表视图制作一个非常简单的过滤器。我使用“GET”从搜索字段/过滤字段中检索用户输入。
我想过滤关于“arrival_date”的数据,models.Delivery 中的一个 DateField。所以这个过滤器有效,但任何给定的数字都会与“arrival_date”的内容进行比较
我想要做的是验证用户输入,它只能包含数字和字符“-”或“/”。除了字符之外,我还想说查询需要至少四位数字才能成为有效输入。
在常规表单中,我会使用“clean_arrival_date”来使用任何验证,但我需要朝着正确的方向推动,以应用此列表视图中所需的相同类型的验证...
感谢您的帮助,
凯文
下面; view.py 包含带有 query_set 的覆盖列表视图
#views.py
"""
Date selector based on ListView
"""
from django.views.generic import ListView
from .models import Delivery
class DeliveryDateListView(ListView):
model = Delivery
template_name = 'data/deliveries_by_date.html
def get_queryset(self):
# Fetch the queryset from the parent get_queryset
queryset = super(DeliveryDateListView, self).get_queryset()
# Get the data GET parameter
date = self.request.GET.get("date")
if date:
# Return a filtered queryset
return queryset.filter(arrival_date__icontains=date)
# Return the base queryset
return queryset
【问题讨论】:
标签: django validation django-forms django-views django-queryset