[Python] Updating multiple nested Objects in DRF

Discussão em 'Python' iniciado por Stack, Outubro 2, 2024.

  1. Stack

    Stack Membro Participativo

    I have three linked models with many To many field relationship.

    I have no ideia how can i update all instances at once.

    I would like create three separated serializers, that could update the three instances.

    class PlannedChargePriceSerializer(serializers.ModelSerializer):
    class Meta:
    model = ChargePrice
    fields = ['id', 'start', 'end', 'price']

    class PlannedChargeSerializer(serializers.ModelSerializer):
    prices = PlannedChargePriceSerializer(many=True)

    class Meta:
    model = Charge
    fields = ['id', 'type', 'qtd', 'status', 'prices']

    class PlannedSerializer(serializers.ModelSerializer):
    charges = PlannedChargeSerializer(many=True)

    class Meta:
    model = Planned
    fields = '__all__'
    read_only_fields = ['id', 'date', 'charges']

    def create(self, validated_data):
    charges_data = validated_data.pop('charges')
    planned = Planned.objects.create(**validated_data)

    for charge_data in charges_data:
    charge_prices_data = charge_data.pop('prices')
    charge = Charge.objects.create(planned=planned, **charge_data)

    for charge_price_data in charge_prices_data:
    ChargePrice.objects.create(charge=charge, **charge_price_data)

    return planned

    def update(self, instance, validated_data):
    # No idea how update multiple nested objects
    return instance

    Continue reading...

Compartilhe esta Página