2010-10-28 88 views
3

我正在創建一個「最新消息」部分,列出最後一天所有數據庫更改。關閉最近的suggestion,我希望使用post_save或pre_save捕獲Django保存模型記錄時已更改的字段。我會將這些數據保存在另一個表格中(帶時間戳)。我知道這是可能的,因爲可以觀察管理應用程序中的行爲 - 它標識哪些字段已被更改)。收集django保存模型記錄時已更新的字段列表

盡我所知,管理應用程序使用forms.changed_data。但是使用post_save或pre_save不會收到任何表單信息。

有沒有一種有效的方法來確定哪些字段已被更改?我是否必須將模型中的每個字段與其當前值(pre_save)進行比較以確定此列表?任何幫助(代碼示例)將不勝感激。

回答

1

有一個答案here。基本上,初始化對象時可以緩存字段,然後在post_save信號中,您可以將每個字段與緩存值進行比較...或者編寫一個比較方法,並只返回已修改的字段。

相關問題