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+ необязательных полей, это становится отвратительным.

Как мне создать полиморфный сериализатор, который может условно сериализовать модель одним из двух способов?

Вернуться на верх