保存模型后,我使用Django的POST_SAVE信号执行一些语句.
class Mode(models.Model):
name = models.CharField(max_length=5)
mode = models.BooleanField()
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Mode)
def post_save(sender, instance, created, **kwargs):
# do some stuff
pass
现在,我想根据mode
字段的值是否已更改来执行一条语句.
@receiver(post_save, sender=Mode)
def post_save(sender, instance, created, **kwargs):
# if value of `mode` has changed:
# then do this
# else:
# do that
pass
我查看了一些软件线程和一个博客,但没有找到解决方案.他们都在try 使用pre_save方法或表单,这不是我的用例.django文档中的https://docs.djangoproject.com/es/1.9/ref/signals/#post-save没有提到直接实现这一点的方法.
下面链接中的答案看起来很有希望,但我不知道如何使用.我不确定最新的Django版本是否支持它,因为我使用ipdb
进行调试,发现instance
变量没有下面答案中提到的属性has_changed
.
Django: When saving, how can you check if a field has changed?个