Как объединить два сериализатора моделей в 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.