Встречается на собеседованиях • сегодня
Как сделать транзакцию в Django
В Django транзакции реализуются через модуль django.db.transaction. Основные способы:
- Декоратор
@transaction.atomic:
python
from django.db import transaction
@transaction.atomic
def view_func(request):
# Код внутри транзакции
obj1.save()
obj2.save() # Если ошибка - откатываются оба сохранения- Контекстный менеджер:
python
def view_func(request):
with transaction.atomic():
# Код внутри транзакции
obj1.save()
obj2.save()- Вложенные транзакции (savepoints):
python
with transaction.atomic():
obj1.save()
savepoint = transaction.savepoint() # точка сохранения
try:
obj2.save()
except:
transaction.savepoint_rollback(savepoint) # откат к savepointПри ошибке внутри блока транзакции происходит автоматический откат. Для PostgreSQL и MySQL транзакции работают по-разному (например, в MySQL не все движки поддерживают транзакции).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы