Обновление нескольких вложенных объектов в DRFPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обновление нескольких вложенных объектов в DRF

Сообщение Anonymous »

У меня есть три связанные модели со связью полей «многие ко многим».
Я понятия не имею, как обновить все экземпляры одновременно.
Я хотел бы создать три отдельных сериализатора, которые могли бы обновлять три экземпляра.
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


Подробнее здесь: https://stackoverflow.com/questions/790 ... cts-in-drf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»