Как я могу работать с вложенным сериализатором django с вложенной моделью django

Я хочу найти более традиционный способ работы вложенного сериализатора Django с вложенными моделями Django.

<
class ProductSerializer(serializers.ModelSerializer):
   def get_attribute(self, instance):
      if isinstance(instance, Invoice):
         instance = instance.invoiceitems.all().first().price
      return super().get_attribute(instance)

   class Meta:
       model = Product

class InvoiceSerializer(serializers.ModelSerializer):
product = ProductSerializer()

   class Meta:
       model = Invoice

из модели Invoice я могу получить доступ к Product обратным методом ORM, который я использую в функции переопределения get_attribute. например

invoice_object.invoiceitems.all().first().price

На данный момент это работает нормально для меня. Но ищу более традиционный способ. Заранее спасибо.

class InvoiceSerializer(serializers.ModelSerializer):
    product = ProductSerializer()
    price = serializer.ReadOnlyField(source='product.price')
    class Meta:
        model = Invoice
Вернуться на верх