【问题标题】:I want change required's message in django rest framework我想在 django rest 框架中更改所需的消息
【发布时间】:2021-07-05 15:49:20
【问题描述】:

我想将所需的消息更改为我的自定义消息。

我的模型 ->

class TeacherProfile(models.Model):
    address = models.CharField(max_length=100)
    subject = models.CharField(max_length=100)
    price = models.IntegerField()
    bio = models.TextField()
    tel_number = models.CharField(max_length=25,validators=[number_regex])
    teacher = models.OneToOneField(User, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.teacher)

当我清空空表单时,它会给出默认错误“此字段可能不是空白。”。我想更改此消息。

class TeacherInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model=TeacherProfile
        fields="__all__"
        extra_kwargs = {
            'bio': {"error_messages": {"required": "My custom error"}},
            'address': {"error_messages": {"required": "My custom error"}},
        }

但没有任何改变

【问题讨论】:

    标签: python django rest django-models django-rest-framework


    【解决方案1】:

    所以,实际上您正在尝试更改默认错误 required 而不是 blank

    必填和空白错误约束之间的区别,当您没有在有效负载中发送必填字段时,必填约束用于发送该字段的错误,以及当您发送具有空白值 ​​("") 和空白值的字段时在您的模型中是不可接受的(空白=假),则使用空白错误约束。

    因此,如果您只想更改空白默认消息,那么您可以这样做

    extra_kwargs = {
        'bio': {"error_messages": {"blank": "My blank custom error"}},
        'address': {"error_messages": {"blank": "My blank custom error"}},
    }
    

    【讨论】:

    • 是的,这完全取决于您的用例和产品要求,对于模型字段,您必须在 extra_kwargs 中使用该字段,但如果您手动指定任何序列化器字段,则可以将其作为函数参数添加为 @ 987654324@
    【解决方案2】:

    该消息的密钥是blank

        extra_kwargs = {
            'bio': {"error_messages": {
                "required": "My custom error",
                "blank": "My custom error",
            }},
            'address': {"error_messages": {
                "required": "My custom error",
                "blank": "My custom error",
            }},
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      相关资源
      最近更新 更多