Django rest框架:如何全局更改错误响应格式

Posted

技术标签:

【中文标题】Django rest框架:如何全局更改错误响应格式【英文标题】:Django rest framework: How to change error response format globally 【发布时间】:2017-08-30 13:57:28 【问题描述】:

所有从 django 默认验证器返回的错误消息都以点 (.) 结尾。无论如何要从全球所有消息中删除最后一个点。

或者,如果有人帮助我找到捕获这些错误返回函数的方法,我可以修剪最后一个点(如果该部分中存在)。

错误消息示例。


  "email": [
    "This field may not be blank."
  ]




  "email": [
    "Enter a valid email address."
  ]

【问题讨论】:

【参考方案1】:

如果您想更改所有这些,您应该在应用程序初始化的某处覆盖该字段的默认消息:

serializers.CharField.default_error_messages['blank'] = 'This field may not be blank'

例如可以找到空白消息here

【讨论】:

它有效。但我需要将此添加到我的所有序列化程序中。反正有全局配置吗? 当然,上面代码示例中的序列化器应该是来自rest_framework的序列化器,它将应用于每个 CharField。【参考方案2】:

您可以使用 Restframework 的异常处理程序。请有一个look。

【讨论】:

以上是关于Django rest框架:如何全局更改错误响应格式的主要内容,如果未能解决你的问题,请参考以下文章