在django视图中获取第一个表单错误

时间:2017-09-11 15:30:56

标签: django django-forms django-views

我在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不支持索引

欢迎评论,感谢阅读。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用list(jsonErrors.keys())[0]代替jsonErrors.keys()[0]

keys()方法返回dict_keys对象,该对象不支持索引。因此,将其转换为列表将允许您按特定索引访问元素。