Встречается на собеседованиях • сегодня

Как реализуешь транзакции в Django

В Django транзакции реализуются через декораторы или контекстные менеджеры из django.db.transaction. Основные способы:

  1. Декоратор @transaction.atomic:
python
from django.db import transaction

@transaction.atomic
def update_data():
    # Код выполняется в одной транзакции
    model.save()
    # При ошибке - откат всей транзакции
  1. Контекстный менеджер:
python
with transaction.atomic():
    # Блок кода в транзакции
    obj1.save()
    obj2.save()

Ключевые особенности:

  • Поддерживается вложенность транзакций (savepoints)
  • Автоматический откат при исключениях
  • Можно явно откатить через transaction.set_rollback(True)
  • Для PostgreSQL есть доп. возможности (например, transaction.on_commit())

Для управления уровнем изоляции нужно настраивать БД, так как Django использует стандартный уровень изоляции СУБД.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы