2016-12-04 108 views
1

使用: django 1.10 reversion 2.0.8。使用django-reversion顯示模型實例的更改日誌歷史

我的問題是如何顯示對給定模型實例所做的更改的一個很好的列表。這意味着用戶可以快速查看所有修訂中的所有更改(字段的新值)的列表。他不需要看到所有的領域只有改變的新的價值觀。

所以我發現存儲更改的好工具是django-reversion。但是,我無法找到解決我的問題的方法,正如我所提到的,該方案顯示給定模型實例的更改日誌歷史記錄。

我發現可以比較兩個修訂版的解決方案django-reversion-compare,但這不是我正在尋找的。也許有更好的工具呢?

該任務過於快速向用戶顯示哪些人和何時發生了變化。該模型很簡單,不存儲大量數據。它確實存儲了外鍵。

+0

你最終做了什麼? –

回答

-1

我也希望這樣做,並閱讀了幾SO帖子後,文檔等,看來我不得不從以下3種方法之一粗略選擇的解決方案:

1)在保存新模型實例之前獲取現有的模型實例。比較每個字段。將更改的字段放入reversion.set_comment('(所有更改,此處爲)')。繼續保存模型實例。

2)保存老油田的獨立模型的__init __複印件()後來比較他們的新領域(在模型的save())來跟蹤發生了什麼變化。將更改的字段放入reversion.set_comment('(所有更改,此處爲)')。繼續保存模型實例。 (這種方法將節省一個DB查詢)

3)生成diff使用Django返的low-level API與管理莫名其妙

整合最後我用django-reversion-compare這對我來說真是棒極了展示的編輯維基式的(可以使用(3)上述反正)

Django的逆轉的開發者也confirmed(3)作爲一個更好的選擇,這也避免了競爭條件。

如果你想探索不同的選擇,this是一個偉大的SO帖子,其優點/缺點很多好主意。

(我也在Django 1.10上)