Обновление нескольких таблиц в Django

Я новичок в Django и СУБД .У меня есть таблица 1 и таблица 2, я обновляю обе и если таблица 1 была успешно обновлена, я перехожу к процессу обновления таблицы 2, если произошла ошибка при обновлении таблицы 2, то мне нужно вернуть изменения, которые я сделал в таблице 1. как я могу достичь этого в Django?

Вот код, который я примерно сделал

def user_operation(request, id):    
if request.method == 'PUT':
        try:
            json_fetch = json.loads(request.body)
            update_emp = EmpDetailsModel.objects.get(emp_id=id)
            for key,value in json_fetch.items():
                flag = 0
                if key == 'contact':
                    cont_update = EmpDetailsModel.objects.get(emp_id=id)
                    for contact in value:
                        flag = cont_update.empcontactmodel_set.create(phone_number=contact['number'], dev_type=contact['type'])
                    if flag == 0: return JsonResponse({'Error':'There was an Error !'})
                    continue
                flag = update_emp.update(**{key:value}) 
                if flag == 0: return JsonResponse({'Error':'There was an Error !'})

        except KeyError:
            return JsonResponse({'Error':'Invalid Key in request!'})

Существует очень эффективное использование, которое называется атомарным блоком. Для получения дополнительной информации и использования : docs

Вернуться на верх