Взятие поля из другой модели в сериализаторах

Сейчас я делаю домашний проект о спорте, и у меня есть модель TrainZone и TrainZoneImage, и в сериализаторах мне нужно отобразить поле изображения из модели TrainZoneImage в TrainZoneSerializer

изображения полей должны быть [enter image description here], где обведено черным

`models.py from django.db import models из ckeditor.fields import RichTextField

class TrainZone(models.Model):

    title = models.CharField(max_length=100, verbose_name='Название')
    description = RichTextField(verbose_name='Описание')


    def __str__(self):
        return self.title



    class Meta:
        verbose_name = 'Тренировочная зона',
        verbose_name_plural = 'Тренировочные зоны'


class TrainZoneImage(models.Model):
    trainzone= models.ForeignKey(TrainZone, default=None, on_delete=models.CASCADE)
    images = models.FileField(upload_to='media/')

    def __str__(self):
        return self.trainzone.title`

`
serializers.py

from rest_framework import serializers

from .models import TrainZone, TrainZoneImage

class TrainZoneImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = TrainZoneImage
        fields = ('id', 'images')  # Измените поля по необходимости

class TrainZoneSerializer(serializers.ModelSerializer):
    images = TrainZoneImageSerializer(many=True, read_only=True)

    class Meta:
        model = TrainZone
        fields = ('id', 'title', 'description', 'images')

class TrainZoneValidatorSerializer(serializers.ModelSerializer):
    class Meta:
        model = TrainZone
        fields = '__all__'

`

Я попытался взять изображения из TrainZoneImage, сделав TrainZoneImageSerializer и взяв изображения полей в TrainZone Serializer

Проблема с TrainZoneSerializer заключается в том, что images не является полем модели TrainZone. Когда вы объявили внешний ключ trainzone в модели TrainZoneImage, вы не указали related_name. Это означает, что по умолчанию атрибут модели TrainZone, ссылающийся на TrainZoneImage, называется trainzoneimage_set. Поэтому, если вы замените images на trainzoneimage_set в вашем сериализаторе, он должен работать.

Если вы хотите оставить сериализатор прежним, вы можете добавить related_name="images" к trainzone ForeignKey, что означает, что images будет именем атрибута TrainZone, который ссылается на TrainZoneImage, вместо trainzoneimage_set.

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