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

Использовал ли Transaction.on_commit() в Django

transaction.on_commit() в Django используется для выполнения действий только после успешного завершения транзакции. Это полезно, когда нужно выполнить побочные эффекты (например, отправку email или вызов внешнего API) только если транзакция прошла успешно.

Пример:

python
from django.db import transaction

def create_user(request):
user = User.objects.create(username='test')
transaction.on_commit(lambda: send_welcome_email(user.id))

text

Ключевые моменты:
1. Колбэк выполнится только если транзакция завершится успешно (без исключений)
2. Если транзакция откатится, колбэк не сработает
3. Вложенные транзакции: колбэк выполнится после завершения самой внешней транзакции
4. Полезно для интеграций с внешними сервисами, где важно гарантировать выполнение только после сохранения данных

Важно: не используйте в колбэке операции с БД, которые требуют той же транзакции - они будут выполняться в новой транзакции.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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