我是Django和rest_framework的新手。我有一个密码复杂性规则脚本,用于“新用户”#39;页。
如果我的复杂性要求满足需求,它将返回true。否则它会引发serialiser.ValidationError
。
我复制了Django的忘记密码机制来应用我的密码规则。 当它引发错误时,应用程序崩溃如下。
Exception Type: ValidationError
Exception Value:
[u"The two password fields didn't match."]
是否可以将序列化程序错误用作表单错误{{ form.new_password1.errors }}
?
答案 0 :(得分:0)
可以编写自己的自定义异常处理程序,以首选格式返回错误。
页面底部的官方documentation说:
ValidationError类应该用于序列化器和字段验证,以及验证器类。通话时也会提出 serializer.is_valid,带有raise_exception关键字参数: 通用视图使用raise_exception = True标志,这意味着您可以全局覆盖验证错误响应的样式 在您的API中。为此,请使用自定义异常处理程序,如上所述 上方。
serializer.is_valid(raise_exception=True)
默认情况下,此异常会导致HTTP状态响应 代码“400 Bad Request”
请阅读here以创建自定义处理程序。