Сериализатор моделей "один-ко-многим" не отображает объект в django rest framework

У меня есть модель один ко многим в django rest framework. Видео является родителем, а Теги являются дочерними, я пытаюсь отобразить все теги в сериализаторе Видео.

class Video(Base):
    video = models.FileField(null=True, blank=True)
    thumbnail = models.ImageField(null=True, blank=True)

class Tag(Base):
    video = models.ForeignKey(Video, on_delete=models.CASCADE, related_name='tags')
    text = models.CharField(max_length=100, null=True, blank=True)
    score = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)

В моем сериализаторе я имею следующее,

class VideoSerializer(serializers.ModelSerializer):
    video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
    thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)

    class Meta:
        model = Video
        fields = ('id', 'video', 'thumbnail', 'tags')

Проблема в том, что сериализованные данные показывают только id для тегов. Любая помощь приветствуется.

Вам необходимо добавить сериализатор для тега.

Например:

class TagSerializer(Base):
   class Meta:
        model = Tag
        fields = ('id', 'text', 'score')

Измените VideoSerializer на что-то вроде этого:

class VideoSerializer(serializers.ModelSerializer):
    video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
    thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)
    tags = TagSerializer(many=True)

    class Meta:
        model = Video
        fields = ('id', 'video', 'thumbnail', 'tags')
Вернуться на верх