django rest框架中的表单验证时出错代码

时间:2015-12-16 10:30:52

标签: django-rest-framework

在表单验证时是否有一种漂亮而干净的方式来使用自定义错误代码?例如:

{
    "name": {
        "code": 121,
        "message": "This field can't be blank."
    }
}

而不是:

{
    "name": ["This field can't be blank."]
}

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在序列化程序的__init__方法中覆盖错误消息:

self.fields['field_name'].error_messages['error_message_key'] = your_custom_error

您可以在the documentation中找到与每个字段相关的所有error_messages键。例如,CharFields错误消息键是必需的,max_length,min_length

如果您正在使用DRF中的custom field

name = serializers.CharField(
    ...,
    error_messages={error_message_key: your_custom_error}
)

如果您想提出更具体的错误,建议您查看官方文档中的Raising ValidationError和DRF文档中的ValidationError