【问题标题】:DjangoRestFramework ModelSerializer ignores required extra dataDjangoRestFramework ModelSerializer 忽略所需的额外数据
【发布时间】:2022-01-14 17:26:23
【问题描述】:

我有一些 ModelSerializer,例如:

class MySerializer(serializers.ModelSerializer):
    x = serializers.IntegerField(required=True, write_only=True)

    class Meta:
        model = MyModel
        fields = (...some MyModel fields..., 'x')

x 不是 MyModel 字段。

问题:当我在 form_data 中发送没有 x 的请求时,drf 不会引发“必需”错误。 预期:需要 400 条响应,其中包含错过“x”的消息。

我可以自己编写它,但它看起来像是未定义的行为,或者我错过了文档中的某些内容。

【问题讨论】:

  • 应该是serializers.IntegerField 而不是serializer.
  • 因为 x 不是模型字段,因为最后模型字段与模型相连,

标签: django django-rest-framework django-serializer


【解决方案1】:

这可能有助于空白是适用于空白字段的错误消息字典的关键,因此最初发布here

class MySerializer(serializers.ModelSerializer):
    x = serializer.IntegerField(required=True, write_only=True)

    class Meta:
        model = MyModel
        fields = (...some MyModel fields..., 'x')
    extra_kwargs = {'x': {'error_messages': {'blank': 'New blank error message'}}}

【讨论】:

    【解决方案2】:

    已解决 - 问题出在 partial=True 标志中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多