在/admin/criminals发生了MultiValueDictKeyError错误,错误的键是'gender'。
在/admin/criminals发生了MultiValueDictKeyError错误,错误的键是'gender'。
我遇到了代码问题,每当我将数据输入到数据库中,然后点击提交时,就会出现"Multyvaluekeyerror"错误。我已经多次更改了表单的值,但仍然没有解决。请帮帮我,非常感谢。
错误信息如下:
MultiValueDictKeyError at /admin/criminals
'gender'
请求方式:POST
请求URL:http://127.0.0.1:8000/admin/criminals
Django版本:2.2.4
异常类型:MultiValueDictKeyError
异常值:'gender'
异常位置:C:\Users\lenovo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\datastructures.py in __getitem__, 第80行
Python可执行文件:C:\Users\lenovo\AppData\Local\Programs\Python\Python37-32\python.exe
Python版本:3.7.4
Python路径:['D:\\django project\\gadmin3',
'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip',
'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37-32\\lib',
'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37-32',
'C:\\Users\\lenovo\\AppData\\Roaming\\Python\\Python37\\site-packages',
'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages']
服务器时间:Mon, 7 Oct 2019 04:35:54 +0000
主要表单代码:
Male
Female
视图代码:
def criminals(request):
if request.method=="POST":
cn = request.POST['crname']
ccrime = request.POST['crime']
cage = request.POST['age']
cheight=request.POST['height']
cbody = request.POST['bodymark']
crgen = request.POST['gender']
s= Criminals()
s.mname=cn
s.mcrime=ccrime
s.mage=cage
s.image = request.FILES['photo']
s.mheight=cheight
s.mbody=cbody
s.mgender=crgen
s.save()
messages.success(request,"Criminal Added Successfully.")
return render(request,'criminal.html')
else:
return render(request,'criminal.html')
MultiValueDictKeyError at /admin/criminals 'gender'问题的原因是在表单中没有正确命名name属性为'gender'的输入字段。而解决方法是将name属性为'gender'的输入字段正确地添加到表单中。
以下是代码的完整整理:
def criminals(request): if request.method == "POST": s = Criminals( mname=request.POST['crname'], ccrime=request.POST['crime'], mage=request.POST['age'], mheight=request.POST['height'], mbody=request.POST['bodymark'], mgender=request.POST['gender'] ) s.save() messages.success(request, "Criminal Added Successfully.") return render(request, 'criminal.html') else: return render(request, 'criminal.html')
以上代码中的问题是在请求的POST数据中找不到名为'gender'的键,导致了MultiValueDictKeyError异常。解决方法是确认表单中的输入字段是否正确命名为'gender',并确保在提交表单时包含了该字段。