跟踪变化 - Django

时间:2010-03-23 23:27:17

标签: python django django-models

我有各种模型,我想跟踪并收集统计数据。

问题是如何在整个时间内存储更改。

我想到了各种替代方案:

  • 在TextField中存储日志,打开它并在每次保存模型时更新它。
  • 或者选择一个列表并将其存储在TextField中。
  • 将日志保存在硬盘上。

你有什么建议?

3 个答案:

答案 0 :(得分:6)

不要重新发明轮子。使用django-reversion记录更改。

我会将统计数据分解为单独的模型。

答案 1 :(得分:1)

说我的小学化学老师:“如果你不写下来,就不会发生这种情况”,因此将日志保存在文件中。

由于日志信息与您的应用程序数据(实际上是元数据)不相交,因此请将它们分开。您可以登录到数据库表,但它应该与您的模型不同。

文字泡菜数据难以让人阅读,二进制泡菜数据更是如此;以易于解析的格式登录,数据可以轻松导入分析软件。

答案 2 :(得分:1)

我有类似的情况,我们应该保持改变的历史。但我们还需要审计来跟踪谁做出了改变以及恢复的能力。在我们的方法中,存储在数据库中似乎更合理但是考虑到你有统计数据并且它的数量很大,也许单独的基于文件的方法对你来说会更好。

在任何情况下,您都应该使用通用机制来记录模型上的更改,而不是对每个模型进行编码。

看看这个:http://www.djangosnippets.org/snippets/1052/