2010-03-23 124 views
6

我有我想跟蹤和收集統計數據的各種模型。保持跟蹤變化 - Django

問題是如何隨時間存儲更改。

我想到各種替代的:

  • 在文本字段中存儲日誌,打開它,每次模型保存時間更新。
  • 或者醃一個列表並將其存儲在TextField中。
  • 將日誌保存在硬盤上。

你有什麼建議?

回答

6

不要重新發明輪子..使用django-reversion進行記錄更改。

雖然我會將統計分解成單獨的模型。

+0

數據庫日誌,似乎有點小題大做,如果我正確讀取OP。 – msw 2010-03-23 23:41:52

+0

@Oli我希望我前一段時間知道這一點,必須從頭開始實施一個wiki。這會有很大的幫助。順便說一句,這可能有點太臃腫。無論如何,非常感謝你! – RadiantHex 2010-03-23 23:49:20

1

我的小學化學老師說:「如果你不寫下來,它沒有發生」,因此將日誌保存在一個文件中。

由於日誌信息與您的應用程序數據(實際上是元數據)是分離的,請將它們分開。您可以登錄到數據庫表,但它應該與您的模型不同。

文本泡菜數據對人類來說很難讀,二進制泡菜數據更是如此;以易於解析的格式登錄,並且數據可以輕鬆導入分析軟件。

+0

@msw:我按照你的建議去做。謝謝你,Python日誌確實非常強大。 :) – RadiantHex 2010-03-24 00:37:26

1

我有類似的情況,我們應該保持歷史的變化。但是我們也需要審計來跟蹤是誰進行了更改以及恢復的能力。在我們的方法中,存儲在數據庫中似乎更合理不過考慮到你有統計數據,而且它的數據量很大,也許單獨的基於文件的方法對你來說會更好。

在任何情況下,您都應該使用通用機制來記錄模型上的更改,而不是單獨編碼每個模型。

在此請看:http://www.djangosnippets.org/snippets/1052/

+0

@sharjeel真棒!謝謝! – RadiantHex 2010-03-24 01:59:56