Встречается на собеседованиях • сегодня
Использовал ли 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. Полезно для интеграций с внешними сервисами, где важно гарантировать выполнение только после сохранения данных
Важно: не используйте в колбэке операции с БД, которые требуют той же транзакции - они будут выполняться в новой транзакции.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы