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框架:如何全局更改错误响应格式的主要内容,如果未能解决你的问题,请参考以下文章

Django-rest-framework 中的全局异常处理

如何在 django rest 框架的分页 URL 中更改下一个键中的主机?

如何使用 django rest 框架禁用 HTML 错误页面的返回?

SpringBoot定义优雅全局统一Restful API 响应框架三

Django Rest框架 - 如果表包含响应显示服务器错误(500)的数据

从 django rest 框架中的序列化程序发送自定义错误响应?