我的Django网站上有一个处理博客文章的应用程序。发布博客文章时,我想在第三方应用程序上安排新闻通讯,通知订阅者新帖子。
所以我想添加一个自定义函数,以便在保存博客文章时调用,我可以将此API调用写入新闻稿服务。
怎么做?尝试查看文档,我能找到的就是管理操作,这似乎不是我想要的。
答案 0 :(得分:7)
您可以使用多种方法。
覆盖模型保存方法很简单,但每次保存模型时都会调用。
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
答案 1 :(得分:2)
你绝对应该选择https://docs.djangoproject.com/en/1.8/ref/signals/#django.db.models.signals.post_save,它提供了你在这里寻找的完整功能。