2017-04-18 63 views
0

我發現自己在幾個模型中說X,YZ的情況下,我想知道他們在什麼時候發生任何更改,即任何創建,更新,刪除,以便我可以執行另一個動作。我搜索了互聯網,但我得到的只是實例審計歷史記錄的庫。有沒有什麼辦法來完成這個內置的Django,甚至是一個自定義的解決方案/ lib將不勝感激。檢測到對Django模型所做的任何更改

我現在的想法是讓這些模型發出post_save信號並收聽。

+2

您不需要「讓模型發出」信號。模型自動執行。 [文檔說](https://docs.djangoproject.com/en/1.11/ref/signals/#pre-save):「這是在模型的save()方法開始時發送的。」 'post_save'和其他一樣。你只需要聽信號。 – C14L

回答

1

Model signals已經發送了,而不必告訴它們,只是作爲Django模型的一部分。您可以將listeners設置爲已發送的信號。

pre_deletepost_delete將覆蓋您的刪除案例; pre_savepost_save將處理您的更新/創建。 post_save發送一個created參數,如果創建了新記錄,則爲True,否則發送False

相關問題