Как объединить два сериализатора моделей в Django Rest Framework

Я хочу объединить результаты двух моделей. У меня есть две модели, как показано ниже. Первая - Product, а вторая - ProductChannelListing

class Product(models.Model):
    name = models.CharField()
    category = models.ForeignKey()
    # has many other fields which I want in the response



class ProductChannelListing(models.Model):
    product = models.ForeignKey()
    channel = models.ForeignKey()
    is_visible = models.BooleanField()
    price = models.IntegerField()

Я хочу получить результат следующим образом.

{ "имя": "ABC", "категория": {}, "is_visible": true, "цена": 200, ** }

Я хочу сделать запрос эффективным, чтобы не делать много запросов.

from .models import Product, ProductChannelListing

class ProductSerializer(model.serializer):
   class Meta:
    model: Product
    fields = '__all__'

class ProductChannelListingSerializer(model.serializer):
   product = ProductSerializer(ready_only=True)
   class Meta:
    model: ProductChannelListing
    fields = '__all__'

Сделайте то же самое для канала, и вы получите все поля видимыми в одной точке просмотра с классом serializer_class как ProductChannelListingSerializer.

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