我本来可以发誓之前我曾经读过一个关于此的问题,但我找不到它,所以:
在Django中,如何在将新模型实例保存到数据库时运行一些代码?
我知道只要保存模型实例,我就可以编写自定义MyModel().save()
方法来运行一些代码。但是,如何在第一次保存模型实例时才能运行代码?
答案 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()
。