gpt4 book ai didi

python - 将用户事件记录到 Django 中的文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:13 26 4
gpt4 key购买 nike

我想记录用户对文件所做的所有更改。用户主要使用通用 View 更改数据。 (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]

可能还有更多信息(例如用户全名等),但我至少尝试让问题保持简单。此外,由于显而易见的原因,日志必须在生产中工作。到目前为止,我发现的是关于将错误消息等记录到文件或控制台。有人知道从哪里开始吗?

最佳答案

您可能想看看django-reversion 。我想说,这是审计变更的更流行的解决方案之一。

最基本的用法示例如下:

  1. 通过恢复注册您的模型:

    import reversion

    @reversion.register()
    class YourModel(models.Model):
    # ...
    pass
  2. 通过 it's middleware 记录 View 中的所有更改:

    MIDDLEWARE_CLASSES += ('reversion.middleware.RevisionMiddleware', )
  3. (或) 记录 decorating specific views 的更改:

    from reversion.views import RevisionMixin

    class RevisionFormView(RevisionMixin, FormView):
    # ...
    pass
  4. (AND/OR)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")

关于python - 将用户事件记录到 Django 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40387388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com