Встречается на 1% собеседований по Python

Делали ли транзакции в Django

Да, работал с транзакциями в Django. Они помогают обеспечить атомарность операций с БД. Основные способы:

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

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

Особенности:

  • По умолчанию работает autocommit
  • Для PostgreSQL можно задать уровень изоляции
  • При ошибке происходит автоматический откат
  • Можно явно вызывать transaction.commit() или rollback()

Пример из практики: использовал транзакции при обработке платежей, чтобы либо полностью выполнить все связанные операции, либо откатить изменения при ошибке.

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

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

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