Добрый день! Есть модель
Item. Нужно, чтобы когда создаётся экземпляр модели
TakenItem у модели
Item из поля
number вычиталось какое-либо количество вещей (зависит от
TakenItem'а). Сначала хотел реализовать это при помощи сигналов сохранения для моделей, однако потом понял, что если, к примеру, у
Item'а поле
number уже 0, то его вычитание ведёт к отрицательному числу, что не правильно.
Вопрос: как сделать так, чтобы при создании
TakenItem'а если поле
number у
Item'а ненулевое, то объект создавался, а у
number'а уменьшалось значение на переданное в создании
TakenItem'а.
Спасибо.
Post Scriptum
P.S. Кто-нибудь может ответить, что решается это простым добавлением метода takeItem к модели Item, в котором всё и проверяется. Однако этот вариант не подходит, так как мне нужно, чтобы это работало ещё и в админке, при этом горожение огородов в самой админке (вызов takeItem'а вместо простого редактирования поля) кажется для меня костылём. Я бы хотел, чтобы это реализовывалось на уровне самой модели, прозрачно для внешнего взаимодействия.