Python 当Django模型’;是否第一次调用了s save方法?

Python 当Django模型’;是否第一次调用了s save方法?,python,django,django-models,Python,Django,Django Models,我可以发誓我以前读过关于这个的问题,但我找不到,所以: 在Django中,当一个新的模型实例保存到数据库中时,如何运行一些代码 我知道我可以编写一个自定义的MyModel().save()方法,以便在保存模型实例时运行一些代码。但是,只有在第一次保存模型实例时,我如何才能运行代码?啊,是的:传递一个名为created的参数,如果它的实例是通过调用save()创建的,这是True,Django文档一开始对我来说很难探索,这里有一个更明确的例子 from django.db.models.signa

我可以发誓我以前读过关于这个的问题,但我找不到,所以:

在Django中,当一个新的模型实例保存到数据库中时,如何运行一些代码


我知道我可以编写一个自定义的
MyModel().save()
方法,以便在保存模型实例时运行一些代码。但是,只有在第一次保存模型实例时,我如何才能运行代码?

啊,是的:传递一个名为
created
的参数,如果它的实例是通过调用
save()
创建的,这是
True

Django文档一开始对我来说很难探索,这里有一个更明确的例子

from django.db.models.signals import post_save
from yourapp.models import YourModel

def model_created(sender, **kwargs):
    the_instance = kwargs['instance']
    if kwargs['created']:
        do_some_stuff(the_instance)

post_save.connect(model_created, sender=YourModel)

您还可以检查save方法中是否存在self.pk-通常我会根据复杂性进行选择。在自动添加之前设置时间戳(例如:)Hmmmm。我从来都不太喜欢信号(远距离的恐怖动作)。另外,有两种非常不同的方法来实现这一点,一种是覆盖save(),另一种是覆盖一个信号。在model_创建的定义中缺少“:”