Допустим, у меня есть модель с названием BookModel с 4 полями: (название, автор, цена, publish_year).
И у меня есть обработчик в сигналах:
@receiver([post_save, post_delete], sender=BookModel)
def signal_handler(sender, instance, **kwargs):
…..
Вопроскак отличить ситуацию, когда конкретное поле модели изменилось во время сохранения ().Например, если цена изменилась, я хочу делать вещи.Лучше объяснить в псевдокоде ...
@receiver([post_save, post_delete], sender=BookModel)
def signal_handler(sender, instance, **kwargs):
# pseudo code bellow
if field “price” has changed:
do stuff
else:
do nothing
Согласно документам, если я использую «update_fields» в save () - это возможно, но что, если я не буду его использовать ???
Также возможно ли отличить ситуацию, когда я получил сигнал от post_save или от post_delete, все еще используя 1 обработчик?
@receiver([post_save, post_delete], sender=BookModel)
def signal_handler(sender, instance, **kwargs):
# pseudo code bellow
if signal is post_save:
if field “price” has changed:
do stuff
else:
do nothing
else:
do other stuff
Спасибо