Встречается на 1% собеседований по Python
Как реализовать транзакции на Django
В Django транзакции реализуются через модуль django.db.transaction. Основные способы:
- Декоратор
@transaction.atomic:
python
from django.db import transaction
@transaction.atomic
def update_data():
# Код, который должен выполняться атомарно
model1.save()
model2.save()- Контекстный менеджер:
python
from django.db import transaction
def update_data():
with transaction.atomic():
model1.save()
model2.save()
# При ошибке здесь откатятся все изменения- Сохранение точек отката:
python
with transaction.atomic():
sid = transaction.savepoint()
try:
# Операции
except:
transaction.savepoint_rollback(sid)Особенности:
- По умолчанию работает на уровне блока кода
- Для PostgreSQL можно настроить изоляцию
- Вложенные транзакции создают savepoints
- Ошибки в atomic-блоке вызывают автоматический откат

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