Встречается на собеседованиях • сегодня
Расскажи как делать транзакции в Django ORM
В Django ORM транзакции позволяют выполнять несколько операций с БД как единое целое. Основные способы:
- Декоратор
@transaction.atomic:
python
from django.db import transaction
@transaction.atomic
def update_data():
# Все операции внутри выполнятся в одной транзакции
model1.save()
model2.save()
# Если возникнет исключение - все изменения откатятся- Контекстный менеджер
atomic():
python
with transaction.atomic():
# Блок кода в транзакции
obj1.save()
obj2.delete()- Вложенные транзакции (savepoints):
python
with transaction.atomic(): # Внешняя транзакция
obj1.save()
try:
with transaction.atomic(): # Внутренняя точка сохранения
obj2.save()
raise Exception
except Exception:
pass # Откатится только obj2, obj1 сохранитсяКлючевые особенности:
- По умолчанию Django использует autocommit режим
- Транзакции поддерживаются только для операций с БД
- При ошибке происходит автоматический rollback
- Можно явно откатить через
transaction.set_rollback(True)

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