Как получить связанное поле в сериализаторе Django?

Есть 2 модели.
сlass Product(models.Model):
    name = models.CharField(verbose_name='Наименование товара', max_length=120)
    slug = models.SlugField(verbose_name='URL  товара', blank=True, unique=True)
    description = models.TextField(verbose_name='Описание')
    price = models.DecimalField(verbose_name='Цена', decimal_places=2, max_digits=20, default=0)


class ProductImage(models.Model):
    image = models.ImageField(upload_to='products/%Y/%m/%d')
    product = models.ForeignKey(Product, default=None, related_name='images', on_delete=models.PROTECT)


и есть 2 сериализатора
class ProductListSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = ['id', 'name', 'slug', 'price', 'category', 'images']
        read_only_fields = fields

class ProductImagesSerializers(serializers.ModelSerializer):
    class Meta:
        model = ProductImage
        fields = '__all__'


Как я могу получить url связанных к товару изображений в сериализаторе ProductListSerializer?
  • Вопрос задан
  • 702 просмотра
Решения вопроса 1
mgis
@mgis Автор вопроса
class ProductImagesSerializers(serializers.ModelSerializer):
    class Meta:
        model = ProductImage
        fields = '__all__'  


class ProductListSerializer(serializers.ModelSerializer):
    images = ProductImagesSerializers(many = True, read_only = True)
    class Meta:
        model = Product
        fields = ['id', 'name', 'slug', 'price', 'category', 'images']
        read_only_fields = fields
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MEDIOFF
Python Developer
тык, тут приведены примеры разных реализаций, и полностью модель можете сериализовать и часть ее
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы