Django的MultiValueDictKeyError错误,我如何处理它
干草,我试图保存一个对象到我的数据库,但它抛出一个MultiValueDictKeyError错误。
问题在于表单内,is_private由checkbox表示。 如果没有选中checkbox,则不会传递任何信息。 这是错误被卡住的地方。
我如何妥善处理这个exception,并抓住它?
这条线是
is_private = request.POST['is_private'] 谢谢
 使用MultiValueDict的get方法。 这也存在于标准的词典中,并且是一种在提供缺省值(如果不存在)的情况下获取值的方法。 
 is_private = request.POST.get('is_private', False) 
通常,
 my_var = dict.get(<key>, <default>) 
select最适合你的东西:
1
 is_private = request.POST.get('is_private', False); 
 如果is_private中存在is_private密钥, is_privatevariables将等于它,如果不是,那么它将等于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 
你得到这个,是因为你试图从字典中获得一个密钥,当它不在那里的时候。 你需要先testing它是否在那里。
尝试:
 is_private = 'is_private' in request.POST 
要么
 is_private = 'is_private' in request.POST and request.POST['is_private'] 
取决于你使用的值。
 你为什么不尝试在你的模型中定义is_private为default=False ? 
 class Foo(models.Models): is_private = models.BooleanField(default=False) 
is_private = request.POST.get('is_private','默认值')