Django DRF полиморфный сериализатор
У меня есть такая модель:
class MyModel(Model):
fieldA = models.CharField()
fieldB = models.CharField()
fieldC = models.CharField()
flag = models.BooleanField()
У меня был сериализатор для этой модели
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('fieldA', 'fieldB', 'fieldC', 'flag')
используемый случай:
qs = MyModel.objects.filter(.....)
data = MyModelSerializer(qs, many=True)
Но теперь я столкнулся с проблемой, что мне нужно динамически сериализовать только полеА, если флаг равен False, и сериализовать всю модель, если флаг равен True.
Я знаю, что могу решить проблему, используя SerializerMethodField для каждого поля, которое я хочу сделать необязательным.
Но если у меня 10+ необязательных полей, это становится отвратительным.
Как мне создать полиморфный сериализатор, который может условно сериализовать модель одним из двух способов?