Можно ли выполнить функцию удаления модели?
У меня есть модель Stock и DeltaStock.
class Stock(models.Model):
quantity = models.DecimalField()
class DeltaStock(models.Model):
delta_quantity = models.DecimalField()
stock = models.ForeignKey(to=Stock, on_delete=models.CASCADE)
Stock - это состояние склада с текущим состоянием. И каждый раз, когда что-то берется со склада, я вычитаю это из количества и создаю DeltaStock
. Но если что-то возвращается на склад, я хочу удалить DeltaStock
и добавить это количество обратно на склад. Поэтому мой вопрос: есть ли способ выполнить функцию, которая добавляет delta_quantity
при удалении DeltaStock
? Функция должна выполняться независимо от того, каким способом удаляется DeltaStock
.
Конечно, то, что вы ищете, это так называемые сигналы - в данном случае конкретно вы бы хотели использовать pre_delete
или post_delete
- в зависимости от ваших потребностей.
Я не буду вдаваться в подробности, поскольку официальная документация по этому вопросу очень интуитивно понятна и подробна.