22 / 25
Как работать с транзакциями и select_for_update в Django?
@transaction.atomic оборачивает блок в БД-транзакцию (rollback при exception). select_for_update() ставит FOR UPDATE lock на строки до конца транзакции — защита от race condition при конкурентных обновлениях. Только внутри atomic.