当第一次调用Django模型的save方法时,如何运行一些代码?

时间:2012-01-18 20:11:45

标签: python django django-models

我本来可以发誓之前我曾经读过一个关于此的问题,但我找不到它,所以:

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

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

2 个答案:

答案 0 :(得分:5)

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)

答案 1 :(得分:4)

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