【发布时间】:2012-01-18 20:11:45
【问题描述】:
我本可以发誓我以前读过一个关于这个的问题,但我找不到它,所以:
在 Django 中,如何在将新模型实例保存到数据库时运行一些代码?
我知道我可以编写一个自定义的MyModel().save() 方法来在保存模型实例时运行一些代码。但是如何仅在第一次保存模型实例时运行代码?
【问题讨论】:
标签: python django django-models
我本可以发誓我以前读过一个关于这个的问题,但我找不到它,所以:
在 Django 中,如何在将新模型实例保存到数据库时运行一些代码?
我知道我可以编写一个自定义的MyModel().save() 方法来在保存模型实例时运行一些代码。但是如何仅在第一次保存模型实例时运行代码?
【问题讨论】:
标签: python django django-models
一开始我很难理解 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)
【讨论】:
是的:the post_save signal 传递了一个名为 created 的参数,如果它的实例是通过对 save() 的调用创建的,那么它就是 True。
【讨论】: