我想将所有更改记录到用户创建的文件中。用户主要使用通用视图更改数据。 (DeleteView,UpdateView,CreateView)我必须能够跟踪所有更改。
例如:
[timestamp] User: [username] added [all] [additions] [to] [database] [here]
[timestamp] User: [username] deleted [all] [deleted] [fields]
[timestamp] User: [username] edited [old] [fields] to [new] [data] [fields]
可能会有更多信息(比如用户全名等),但我至少试着让问题变得简单。此外,由于明显的原因,日志必须在生产中工作。到目前为止,我发现的是将错误消息等记录到文件或控制台。有谁知道从哪里开始?
答案 0 :(得分:0)
您可能需要查看django-reversion
。我想说,这是审核变更的一种比较流行的解决方案。
最基本的用法示例如下:
使用reversion注册模型:
import reversion
@reversion.register()
class YourModel(models.Model):
# ...
pass
MIDDLEWARE_CLASSES += ('reversion.middleware.RevisionMiddleware', )
(OR)按decorating specific views记录更改:
from reversion.views import RevisionMixin
class RevisionFormView(RevisionMixin, FormView):
# ...
pass
(和/或)使用the context manager记录更改:
with reversion.create_revision():
# Save a new model instance.
obj = YourModel()
obj.name = "obj v1"
obj.save()
# Store some meta-information.
reversion.set_user(request.user)
reversion.set_comment("Created revision 1")