История изменений
Исправление x3al, (текущая версия) :
В такой постановке задачи — в триггере в базе если у тебя джанга запущена в 2+ треда/процесса/что-там-у-gevent'а. Для распределённых баз, впрочем, это сложнее. Хотя можно тупо lock поставить.
EDIT: в общем случае — ловить ошибку со стороны твоей БД.
нам уже в классе формы надо прописывать валидацию? Но это уже дублирование кода.
Нет, это не дублирование.
Если хочется бизнес-логику именно в джанге — это часто делается либо в модели, либо в отдельном слое бизнес-логики, который транслирует реальные события (продажа товара) в абстрагированную от реального мира БД, где уже меняется текущее количество на складе, в лучших традициях domain-driven design, вплоть до CQRS.
Исходная версия x3al, :
В такой постановке задачи — в триггере в базе если у тебя джанга запущена в 2+ треда/процесса/что-там-у-gevent'а. Для распределённых баз, впрочем, это сложнее. Хотя можно тупо lock поставить.
нам уже в классе формы надо прописывать валидацию? Но это уже дублирование кода.
Нет, это не дублирование.
Если хочется бизнес-логику именно в джанге — это часто делается либо в модели, либо в отдельном слое бизнес-логики, который транслирует реальные события (продажа товара) в абстрагированную от реального мира БД, где уже меняется текущее количество на складе, в лучших традициях domain-driven design, вплоть до CQRS.