对象与新实例保存后Django调用方法
我想在保存此对象(在本例中为对象与新实例保存后Django调用方法,django,django-models,signals,Django,Django Models,Signals,我想在保存此对象(在本例中为Question)后调用一个方法。 这就是我得到的: class Question(models.Model): ... def after_save(sender, instance, *args, **kwargs): some_method(instance) post_save.connect(Question.after_save, sender=Question) 这有点管用。但问题是,实例数据是旧数据(与保存前相同)
Question
)后调用一个方法。
这就是我得到的:
class Question(models.Model):
...
def after_save(sender, instance, *args, **kwargs):
some_method(instance)
post_save.connect(Question.after_save, sender=Question)
这有点管用。但问题是,实例
数据是旧数据(与保存前相同)。因此some_方法(实例)
获取旧的实例
。
但是我需要具有新数据的实例。从post_save signal调用的方法应该在模型之外。可以将该方法放入models.py或signals.py等其他文件中
class Question(models.Model):
...
def some_method(self):
return "hello"
def question_saved(sender, instance, *args, **kwargs):
instance.some_method()
post_save.connect(question_saved, sender=Question)
您可以重写save方法,并在保存对象后随时调用所需的内容
这里有一个相关链接:您会遇到什么错误?信号不亮吗?它是否正确地调用了model方法?你有没有看到过这样的帖子,比如你必须在你的文件顶部添加“from django.db.models.signals import post_save”才能将其添加到WorkID中?你有没有找到解决方案?