[Django]-Django Rest Framework: PUT/POST fails in case of blank optional fields in nested serializer

0👍

Looking your code why don’t you use modelserializers instead of serializer. In serializer level you can change the fields according to the requirements. You can change the required field to non-required fields in serializer and it won’t be problem on model level.

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'password')

class PersonSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    class Meta:
        model = Person
        fields = ('id', 'user', # specify other fields)

class AdminSerializer(serializers.ModelSerializer):
    person = PersonSerializer()
    class Meta:
        model = Admin
        fields = ('id', 'person', # specify other fields)

If you want to change the user field to non-required in PersonSerializer change the code as follows.

user = UserSerializer(required=False)

Leave a comment