Django Admin,保存时调用函数

Posted

技术标签:

【中文标题】Django Admin,保存时调用函数【英文标题】:Django Admin, Call function on save 【发布时间】:2015-05-15 06:13:02 【问题描述】:

我的 Django 站点中有一个用于处理博客文章的应用程序。当一篇博文发布时,我想在第三方应用程序上安排一份时事通讯,通知订阅者新博文。

所以我想添加一个自定义函数,以便在保存博客文章时调用,我可以将这个 API 调用写入新闻通讯服务。

如何做到这一点?尝试查看文档,我能找到的只是管理操作,这似乎不是我想要的。

【问题讨论】:

Django 信号是您正在寻找的。 Post save signal 对你很有用。 你可以在模型中使用保存方法。这对你的工作来说很容易。在该 def django huey 中可以用于队列。 def save(self): super(ModelName,self).save() 【参考方案1】:

您可以使用多种方法。

重写模型保存方法很简单,但每次保存模型时都会调用。

https://docs.djangoproject.com/en/dev/ref/models/instances/#saving-objects

如果它特定于管理站点,请在您的 ModelAdmin 中使用 model_save() 方法。 (我个人喜欢这种方法,因为它不会干扰您的模型)。

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

你也可以使用后保存信号,但保存方法似乎是首选(取决于你在做什么)Django: When to customize save vs using post-save signal

【讨论】:

【参考方案2】:

您绝对应该选择https://docs.djangoproject.com/en/1.8/ref/signals/#django.db.models.signals.post_save,它提供了您在此处寻找的完整功能。

【讨论】:

当我们从管理员端保存对象时它会起作用吗?

以上是关于Django Admin,保存时调用函数的主要内容,如果未能解决你的问题,请参考以下文章

activatematlab时调用函数错误

Symfony / Ajax:成功响应时调用函数

如何能避免在调用子类对象的虚函数时调用父类的虚函数呢?

viewController 关闭时调用的函数(当应用程序退出时)?

PHP:每当调用子类中的函数时调用函数

django的views直接传一段html代码调用模板中的js函数。