Django Rest Framework - 自定义错误消息 - 序列化程序与模型

问题描述 投票:0回答:0

:) 你好!

我目前遇到一个问题,我无法通过搜索文档或其他问题来解决,如果有人能帮助我,我将不胜感激。

问题相对简单:我正在为发布新对象时出现的验证错误添加自定义消息,但我只想在一个地方做:在模型内部或序列化程序内部。

为了这个例子和我的用例,我只谈论

unique
max_length
验证。

  • 在模型字段中定义

    error_messages=errors_dict
    目前仅更改
    unique
    验证错误消息,显示
    max_length
    的默认值。

  • 当我在序列化程序中设置它时,会发生相反的情况,在 Meta 中使用 extra_kwargs。它只会更改

    max_length
    验证错误消息。

有人知道我在这里缺少什么吗?是否可以只在一个地方设置

error_messages

谢谢!


这里有一些代码片段,它有帮助:

下面示例中的

errors
是同一个字典,包含两个键(
unique
max_length
)。

  • 内部模型,仅用于唯一验证:
class User(AbstractUser, SplintModel):
    (...)
    cpf = models.CharField('CPF', blank=False, max_length=11, unique=True, error_messages=errors)
  • 在 Serializer 内部,仅用于 max_length 验证:
class UserSerializer(serializers.ModelSerializer):
    (...)
    class Meta:
        model = User
        (...)

        extra_kwargs = {
            "cpf": {"error_messages": errors}
        }
django django-models django-rest-framework django-serializer validationerror
© www.soinside.com 2019 - 2024. All rights reserved.