Встречается на собеседованиях • сегодня
Что такое on_commit в Django
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))
# Если транзакция успешна — email отправится
# При откате — код не выполнитсяКлючевые моменты:
- Выполняется только после успешного commit
- В тестах требует
TestCaseвместоTransactionTestCase - Если транзакции отключены, выполняется сразу
- Можно использовать как декоратор:
@transaction.on_commit
Важно: не используйте для операций, которые должны быть частью транзакции.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы