Встречается на собеседованиях • сегодня
Как реализовать транзакции на 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
интервью вопросы и ответы