如何在django表单中使用rest serializer.ValidationError?

时间:2015-07-01 21:30:11

标签: python django django-forms django-rest-framework

我是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 }}

1 个答案:

答案 0 :(得分:0)

可以编写自己的自定义异常处理程序,以首选格式返回错误。

页面底部的官方documentation说:

  

ValidationError类应该用于序列化器和字段验证,以及验证器类。通话时也会提出   serializer.is_valid,带有raise_exception关键字参数:   通用视图使用raise_exception = True标志,这意味着您可以全局覆盖验证错误响应的样式   在您的API中。为此,请使用自定义异常处理程序,如上所述   上方。

serializer.is_valid(raise_exception=True)
  

默认情况下,此异常会导致HTTP状态响应   代码“400 Bad Request”

请阅读here以创建自定义处理程序。