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

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

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

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

【问题讨论】:

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

标签: python django


【解决方案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,它提供了您在此处寻找的完整功能。

    【讨论】:

    • 当我们从管理员端保存对象时它会起作用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多