Как обновлять 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
Вернуться на верх