Home > front end >  DjangoRestFramework ModelSerializer ignores required extra data
DjangoRestFramework ModelSerializer ignores required extra data

Time:01-15

I have some ModelSerializer like:

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

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

x is not a MyModel field.

Problem: when I send request without x in form_data, drf doesn't raise "required" error. Expected: 400 response with message of missed 'x' is required.

I am able to write it by myself, but it looks like undefined behavior or I missed something in docs.

CodePudding user response:

This might help blank is the key for the error messages dict that is applicable for blank fields so originally posted 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'}}}

CodePudding user response:

Solved - the problem was in the partial=True flag.

  •  Tags:  
  • Related