Как автоматически обновить поле модели, если произошли изменения в предыдущем поле?

Я пытаюсь найти способ обновления последнего поля в модели, если есть изменения в предыдущем поле.

Например: допустим, у меня есть модель Cash Balance

Cash Balance

Если я изменю счет 134 дебета на 50, как мне сделать так, чтобы это изменение отразилось на других балансах, следующих за ним автоматически

Вероятно, вы хотите использовать сигнал

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

from django.dispatch import receiver

@receiver(post_save, sender=CashBalance)
def update_cash_balance(sender, instance, **kwargs):
    if instance.balance != instance.calculate_balance()
        instance.set_balance()

Опасайтесь использования .save() внутри сигнала, потому что вы можете запустить рекурсивный цикл, поставьте проверку if-выражения, чтобы этого не произошло

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