And*_*uiz 2 python django signals
我正在模型的 pre_save 信号中工作,我不知道如何检查记录是插入还是更新。下面的代码(无法正常工作):
@receiver(pre_save, sender=Person)
def pre_save_person(sender, instance, **kwargs):
if not instance.pk:
print 'INSERT !!!!!!'
else:
print 'UPDATE !!!!!!'
Run Code Online (Sandbox Code Playgroud)
你能帮助我吗?该项目使用django 1.8.7。
谢谢你的帮助
在 @knbk 注释之后,instance.pk 此时将始终存在。您必须检查数据库中是否存在此instance.pk:
@receiver(pre_save, sender=Person)
def pre_save_person(sender, instance, **kwargs):
num = Person.objects.filter(pk=instance.pk).count()
if num == 0 :
print 'INSERT !!'
else:
print 'UPDATE !!'
Run Code Online (Sandbox Code Playgroud)