Как отобразить несколько фотографий через API

models.py

class UserRoom(models.Model):
    objects = None
    categoty = [
        ('President Lux', 'President Lux'),
        ('Lux', 'Lux'),
        ('Double', 'Double'),
        ('Standard', 'Standard'),
    ]
    name = models.CharField(max_length=150, choices=categoty, verbose_name='Категория')
    room_num = models.CharField(max_length=150)
    about = models.TextField(verbose_name='Подробности')
    price = models.IntegerField(verbose_name='Цена')
    img360 = models.FileField(verbose_name='Фотография в 360')

    class Meta:
        verbose_name = 'Номер (About)'
        verbose_name_plural = 'Номера (About)'


class UserImg(models.Model):
    name = models.ForeignKey(UserRoom, on_delete=models.CASCADE, verbose_name='img2')
    img = models.FileField(upload_to='User img', verbose_name='Фотография')

как написать в serializers.py так, чтобы отображались все данные из базы данных?

как написать в serializers.py чтобы отображались все данные из базы? сейчас когда я подключаю serializers.py он отображает либо только первую модель, либо картинки из второй и ID прикрепленной модели


class UserRoomSer(ModelSerializer):
    class Meta:
        model = UserRoom
        fields = '__all__'

class UserImgSer(ModelSerializer):
    class Meta:
        model = UserImg
        fields = '__all__'


class UserRoomSer(ModelSerializer):
    images = serializers.RelatedField(
        many=True, queryset=UserImg.objects.all())

    class Meta:
        model = UserRoom
        fields = [
            'name', 'room_num', 'about', 'price',
            'img360', 'images',
        ]

Просто создайте сериализатор, как указано выше, он создаст json следующим образом

{
    "images": [
        {
            "name": "",
            "img": ""
        },
        {
            "name": "",
            "img": ""
        }
    ],
    "name": "",
    "room_num": "",
    "about": "",
    "price": "",
    "img360": ""
}
Вернуться на верх