Как обновлять foreign key
Начал изучать Django Rest Framework. Возник вопрос как обновлять foreign key?
Весь код там - https://pastebin.com/HgKXKNh0
Вопрос собственно про эти функции:
for disk_data in disks_data:
Disks.objects.update(client=instance, **disk_data)
for adapter_data in net_adapter_data:
NetAdapter.objects.update(client=instance, **adapter_data)
def create(self, validated_data) взял из https://www.django-rest-framework.org/api-guide/relations/#writable-nested-serializers, но вот с update() фокус не прошел.
Т.е. надо сделать что-то типа Disks.objects.filters(client=instance).all() получить id и уже потом обновлять, но что-то второй день туплю...
Да совсем забыл, перед обновлением объекта мы должны сначала его удалить:
Def update(self, instance, validated_data):
disks_data = validated_data.pop('disk')
net_adapter_data = validated_data.pop('adapter')
instance = super().update(instance, validated_data)
instance.disk.all().delete()
instance.adapter.all().delete()
for disks_data in disks_data:
Disks.objects.update_or_create(client=instance, **disks_data)
for adapter_data in net_adapter_data:
NetAdapter.objects.update_or_create(client=instance, **adapter_data)
return instance