我在處理博客文章的Django站點中有一個應用程序。當博客文章發佈時,我想在第三方應用程序上安排一條通訊,通知訂閱者該新帖子。Django Admin,保存調用函數
所以,我想添加一個自定義函數,當博客文章被保存在可以將此API調用寫入時事通訊服務時。
如何做到這一點?試圖通過文檔和我能找到的所有內容是Admin Actions,這似乎並不是我正在尋找的內容。
我在處理博客文章的Django站點中有一個應用程序。當博客文章發佈時,我想在第三方應用程序上安排一條通訊,通知訂閱者該新帖子。Django Admin,保存調用函數
所以,我想添加一個自定義函數,當博客文章被保存在可以將此API調用寫入時事通訊服務時。
如何做到這一點?試圖通過文檔和我能找到的所有內容是Admin Actions,這似乎並不是我正在尋找的內容。
有許多方法可以使用。
覆蓋模型保存方法很簡單,但每次保存模型時都會調用。
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
我選擇了保存信號。它工作得很好! –
你一定要去https://docs.djangoproject.com/en/1.8/ref/signals/#django.db.models.signals.post_save,它提供了你在這裏尋找的完整功能。
Django的信號是你在找什麼是首選。 [發佈保存信號](https://docs.djangoproject.com/en/1.8/ref/signals/#django.db.models.signals.post_save)對你來說非常有用。 – FallenAngel
U可以在模型中使用保存方法。這對你的工作很簡單。在那個def django huey可以用於隊列。 def save(self): \t \t super(ModelName,self).save() –