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)
Source:stackexchange.com