Написание методов .update() для вложенных представлений

Прошу помочь. Не могу разобраться, как переопределить метод update() для вложенного сериализатора.

models.py

class Order(models.Model):
    user = models.ForeignKey(
        User,
        verbose_name='Пользователь',
        related_name='orders',
        blank=True,
        on_delete=models.CASCADE
    )
    dt = models.DateTimeField(auto_now_add=True)
    state = models.CharField(verbose_name='Статус', choices=STATE_CHOICES, max_length=15)
    city = models.CharField(max_length=50, verbose_name='Город')
    street = models.CharField(max_length=100, verbose_name='Улица')
    house = models.CharField(max_length=15, verbose_name='Дом', blank=True)
    structure = models.CharField(max_length=15, verbose_name='Корпус', blank=True)
    building = models.CharField(max_length=15, verbose_name='Строение', blank=True)
    apartment = models.CharField(max_length=15, verbose_name='Квартира', blank=True)
    phone = models.CharField(max_length=20, verbose_name='Телефон')

    class Meta:
        verbose_name = 'Заказ'
        verbose_name_plural = "Список заказ"
        ordering = ('-dt',)

serializers.py

class OrderItemSerializer(ModelSerializer):
    class Meta:
        model = OrderItem
        fields = ["id", "quantity", "product_info"]


class OrderSerializer(WritableNestedModelSerializer):
    ordered_items = OrderItemSerializer(many=True, required=True)

    class Meta:
        model = Order
        fields = [
            "id", "dt", "state", "user", "city", "street", "house", "structure",  "building", "apartment",  "phone",
            "ordered_items"
        ]
        read_only_fields = ["user"]
    
    def update(self, instance, validated_data):

        order_data = validated_data.pop('ordered_items')
        instance.state = validated_data.get('state', instance.state)
        instance.city = validated_data.get('city', instance.city)
        instance.street = validated_data.get('street', instance.street)
        instance.house = validated_data.get('house', instance.house)       
        instance.apartment = validated_data.get('apartment', instance.apartment)
        instance.phone = validated_data.get('phone', instance.phone)
        instance.save()
        for i in order_data:
            print(i["quantity"])
            i = OrderItem.objects.update(quantity=i["quantity"])
            instance.ordered_items.add(i)          
        return instance

Но при вводе вложенных параметров ловлю ошибку.

views.py

class OrderViewSet(ModelViewSet):
    queryset = Order.objects.all()
    serializer_class = OrderSerializer

Ответы (0 шт):