Можно ли выполнить функцию удаления модели?

У меня есть модель 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 - в зависимости от ваших потребностей.

Я не буду вдаваться в подробности, поскольку официальная документация по этому вопросу очень интуитивно понятна и подробна.

https://docs.djangoproject.com/en/3.2/topics/signals/

Вернуться на верх