对象与新实例保存后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中?你有没有找到解决方案?