Aae*_*onn 5 forms django request
我已经制作了一个表格来过滤 ListView
class SingleNewsView(ListView):
model = News
form_class = SearchForm
template_name = "single_news.html"
def get(self, request, pk, **kwargs):
self.pk = pk
pub_from = request.GET['pub_date_from']
pub_to = request.GET['pub_date_to']
return super(SingleNewsView,self).get(request,pk, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我的表单字段是pub_date_from和pub_date_to.当我运行网站时,它说:
MultiValueDictKeyError .
我不知道发生了什么事.当我删除两行获取pub_from并且pub_to网站工作正常.我希望这两个值来过滤查询集.
任何帮助PLZ
在第一次请求时,没有提交表单数据,因此request.GET不会有任何数据.这样做request.GET['pub_date_from']会失败.你应该使用.get()方法
pub_from = request.GET.get('pub_date_from')
pub_to = request.GET.get('pub_date_to')
Run Code Online (Sandbox Code Playgroud)
如果这些键不在dict中,将返回None.因此,在代码中适当处理这些情况.
此外,如果要过滤ListViewadd get_queryset()方法的对象以返回过滤的查询集,如此处所述,动态过滤
| 归档时间: |
|
| 查看次数: |
7124 次 |
| 最近记录: |