gpt4 book ai didi

请求获取对象时出现 django MultiValueDictKeyError

转载 作者:行者123 更新时间:2023-12-01 18:55:49 24 4
gpt4 key购买 nike

我制作了一个表单来过滤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)

我的表单字段是 pub_date_frompub_date_to。当我运行该网站时,它显示:
MultiValueDictKeyError .

我不知道发生了什么。当我删除获取 pub_from 和 pub_to 的两行时,该网站工作正常。我希望这两个值来过滤查询集。

最佳答案

在第一次请求时,没有提交表单数据,因此 request.GET 不会有任何数据。因此 request.GET['pub_date_from'] 将会失败。您应该使用 .get() 方法

pub_from = request.GET.get('pub_date_from')
pub_to = request.GET.get('pub_date_to')

如果这些键不在字典中,将返回None。因此,请在代码中适当处理此类情况。

此外,如果您想过滤 ListView 的对象,请添加 get_queryset() 方法以返回过滤后的查询集,如此处所述 Dynamic filtering

关于请求获取对象时出现 django MultiValueDictKeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24322953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com