addHow to make django post_save signal run only during creation

你说的曾经没有我的故事 提交于 2019-12-05 07:42:27

There is a created named argument which will be set to True if it's a new object.

Have a look here - https://docs.djangoproject.com/en/1.10/ref/signals/#post-save

def my_func(sender, instance, created, **kwargs):
    print("Created: ", created)

class MyModel(models.Model):
    x = models.CharField(max_length=255)

post_save.connect(my_func, sender=MyModel)

>>> MyModel.objects.create(f='asdf')
Created:  True
>>> m = MyModel.objects.all().first()
>>> m.x
'asdf'
>>> m.x = 'a'
>>> m.save()
Created:  False
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!