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

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

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

错误消息示例。

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


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

【问题讨论】:

    标签: django django-models django-forms django-rest-framework django-validation


    【解决方案1】:

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

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

    例如可以找到空白消息here

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 2021-01-12
      • 2015-01-26
      • 2018-04-20
      • 2020-06-17
      • 2012-05-31
      • 2017-09-23
      • 2018-07-04
      相关资源
      最近更新 更多