我在提交空的无线电输入时遇到了问题。如果我选择一个选项,表单功能正常;但是,如果我留空白,我碰到下面的错误 -django ChoiceField中的问题
MultiValueDictKeyError at/ Key 'like' not found in <QueryDict:...
我已经尝试了多种解决方案,包括使用的“喜欢”提到的领域一个dict.get和删除列在数据库中 - 这在表单模块中似乎是一个问题。
这里是我的代码:
在forms.py -
from django import forms
class PictureForm(forms.Form):
like = forms.ChoiceField(widget=forms.RadioSelect(), choices=(
[('yes','yes'), ('no','no'),]),)
name = forms.CharField()
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
而且在views.py
def index2(request):
if request.method == 'POST':
form = PictureForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
Picture.objects.create(like=cd['like'], name=cd['name'], email=cd['email'], message=cd['message'])
return HttpResponseRedirect ('/thanks/')
else:
form = PictureForm()
return render_to_response('index2.html', {'form':form}, context_instance=RequestContext(request))
我想有这么明显存在任何错误当收音机提交空白时 - 和
1)如何让空白提交,以及
2)如何提示错误信息。
此外,验证不适用于此表单(我已经完成了以前的教程,并且这是验证首次不自动工作)。
谢谢。
我认为这个类似问题的答案会帮助你出来 :http://stackoverflow.com/q/5895588/1037459 – 2011-11-09 10:58:54