我正试图将一个对象保存到我的数据库中,但它抛出了一个MultiValueDictKeyError
错误。
问题出在表单中,is_private
由一个复选框表示。如果未选中该复选框,则显然不会传递任何内容。这就是错误被抛出的地方。
我如何正确地处理这个异常,并捕获它?
这条线是
is_private = request.POST['is_private']
发布于 2011-05-05 17:47:34
使用MultiValueDict的get
方法。这也存在于标准字典中,是一种在不存在默认值的情况下获取值的方法。
is_private = request.POST.get('is_private', False)
一般来说,
my_var = dict.get(<key>, <default>)
发布于 2011-05-05 17:45:49
选择最适合你的:
1
is_private = request.POST.get('is_private', False);
如果request.POST中存在is_private
密钥,则is_private
变量将等于它,如果不存在,则等于False。
2
if 'is_private' in request.POST:
is_private = request.POST['is_private']
else:
is_private = False
3.
from django.utils.datastructures import MultiValueDictKeyError
try:
is_private = request.POST['is_private']
except MultiValueDictKeyError:
is_private = False
发布于 2011-05-05 17:42:34
你得到它是因为你试图从字典中获取一个键,而它并不在字典中。您需要首先测试它是否在其中。
尝试:
is_private = 'is_private' in request.POST
或
is_private = 'is_private' in request.POST and request.POST['is_private']
这取决于您正在使用的值。
https://stackoverflow.com/questions/5895588
复制相似问题