2010-03-23 86 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