I have the following models in my django rest framework app:
class Question(models.Model): class Type(models.TextChoices): TEXT = 'text', 'text question' RADIO = 'radio', 'choosing one option quesiton' CHOICE = 'check', 'choosing multiple options question' type = models.CharField(max_length=5, choices=Type.choices) title = models.CharField() description = models.TextField(blank=True, default='') def __str__(self) -> str: return f'{self.type}: {self.title}'class TextQuestion(Question): answer = models.CharField()class RadioQuestion(Question): variants = fields.ArrayField(models.CharField()) answer = models.CharField()class ChoiceQuestion(Question): variants = fields.ArrayField(models.CharField()) answers = fields.ArrayField(models.CharField())class Test(models.Model): name = models.CharField() creator = models.ForeignKey(User, on_delete=models.CASCADE) questions = models.ManyToManyField(Question)```I want to write serializer for test serialization, but I dont know how to serialize questions field. Because I have different serializer for every question type:What should I do? Maybe it`s better to reorganize my models somehow?
I already writed serializers for all question types:
class TextQuestionSerializer(serializers.ModelSerializer): class Meta: model = TextQuestion fields = '__all__'class RadioQuestionSerializer(serializers.ModelSerializer): class Meta: model = RadioQuestion fields = '__all__'class ChoiceQuestionSerializer(serializers.ModelSerializer): class Meta: model = ChoiceQuestion fields = '__all__'I thought about using serializer.SerializerMethodField() but it this doesnt work with many=True