我在Django View中遇到表单的第一个错误时遇到问题。这是我做的:
views.py
frm = PasswordChangeForm(request.user,request.POST)
if frm.is_valid():
frm.save()
else:
jsonStringErrors = frm.errors.as_json()
jsonErrors = loads(jsonStringErrors)
old_passwordError = jsonErrors['old_password']
if old_passwordError:
context["error"] = old_passwordError[0]["message"]
else:
new_passwordError = jsonErrors["new_password2"]
if new_passwordError:
context["error"] = new_passwordError[0]["message"]
else:
context["error"] = frm.errors.as_text()
当用户正确输入密码时,我在第7行收到错误,所以我尝试了
old_passwordError = jsonErrors.items()[0]
也是这个
old_passwordError = jsonErrors.keys()[0]
但是我收到了这个错误
' dict_keys' object不支持索引
欢迎评论,感谢阅读。
答案 0 :(得分:0)
您可以尝试使用list(jsonErrors.keys())[0]
代替jsonErrors.keys()[0]
。
keys()
方法返回dict_keys
对象,该对象不支持索引。因此,将其转换为列表将允许您按特定索引访问元素。