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 响应框架三