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

Как работают транзакции в Django

В Django транзакции управляются через модуль django.db.transaction. Они позволяют группировать операции с БД в атомарные блоки — либо все операции выполняются успешно, либо ни одна.

Основные способы работы с транзакциями:

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

@transaction.atomic
def view_func(request):
# Код внутри этой функции будет выполняться в транзакции
obj.save() # Если здесь произойдет ошибка, изменения не сохранятся

text

2. **Контекстный менеджер**:
```python
with transaction.atomic():
    # Операции внутри блока выполняются в транзакции
    obj1.save()
    obj2.save()  # Если ошибка здесь, obj1 тоже не сохранится

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

  • По умолчанию Django использует autocommit — каждый запрос выполняется в отдельной транзакции
  • Вложенные транзакции создают savepoints
  • Можно явно откатывать транзакции через transaction.set_rollback(True)
  • Для PostgreSQL доступны дополнительные опции, например serializable
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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