使用 django-auditlog 如何显示特定模型的“actor_id”

我已经创建了一个简单的 Django 应用程序来显示单个文章。这些文章有许多用户可以编辑的字段。我正在使用包 'django-auditlog' 来记录对这些文章模型的更改。到目前为止,我只需遵循auditlog installation doc来设置模型历史记录跟踪 (以及使中间件允许 'actor_id' 被跟踪)。我还添加了示例代码,如最近显示单个模型

我已经创建了一个简单的 Django 应用程序来显示单个文章。这些文章有许多用户可以编辑的字段。我正在使用包 'django-auditlog' 来记录对这些文章模型的更改。到目前为止,我只需遵循auditlog installation doc来设置模型历史记录跟踪 (以及使中间件允许 'actor_id' 被跟踪)。我还添加了示例代码,如最近显示单个模型

<!-- History display -->
<div class="table-responsive">
  <table id="history" class="table table-striped table-bordered">
    <thead>
      <tr>
        <th>Actor</th>
        <th>Field</th>
        <th>From</th>
        <th>To</th>
      </tr>
    </thead>
    <tbody>
    <!-- Human readable - change to '.changes_dict.' for proper logs -->
    {% for key, value in article.history.latest.changes_display_dict.items %}
      <tr>
        <td>{{ article.history.latest.author_id }}</td>
        <td>{{ key }}</td>
        <td>{{ value.0|default:"None"|striptags|safe }}</td>
        <td>{{ value.1|default:"None"|striptags|safe }}</td>
      </tr>
    {% empty %}
      <p>No history for this item has been logged yet.</p>
    {% endfor %}
    </tbody>
  </table>
</div>

正如我的代码可能建议的那样,我试图向历史记录表添加一个额外的列,以显示谁进行了正在显示的更改。

是否有一个简单的方法通过 auditlog 做到这一点,或者我必须创建某种 sql 查询到我的 sqlite auditlog db 表来检索 'author_id' 字段?

非常感谢。

1

在查看 Django AuditLog 的models file后,我找到了答案。如果您使用 django-auditlog 教程中描述的 AuditlogHistoryField()方法创建了历史记录字段,则无法直接从模型的历史记录字段中拉出 actor。

相反,我做了以下操作:

在 views.py 文件中

from auditlog.models import LogEntry
...
dal_log = LogEntry.objects.filter(object_id=article.id)
...
context = {'article': article, 'logs': dal_log}
return render(request, "detail.html", context)

然后在我的模板中,我能够使用指定对象的日志条目(在我的情况下,这些是 'article' 模型)。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(530)
在溢出公式中引用溢出和“常规”单元格(excel #spill)
上一篇
HTTP错误 500.32-将自包含.NetCore3.1应用程序部署到Azure后 ANCM无法加载dll
下一篇

相关推荐

  • 为什么 gunicorn_django不再推荐

    我们有一个在生产中使用 gunicorn_django 部署的应用程序。我注意到它不再推荐。我想知道为什么不推荐它,以及我们是否需要迁移到更新的方式。…

    2022-11-11 15:19:50
    0 18 66
  • 在django中将电子邮件发送到bcc和 cc

    views.py…

    2022-12-12 02:22:44
    0 35 20
  • python django开发网站:如何使用 Django 开发功能丰富的网站

    Python Django开发网站是一种基于Python的Web框架,它提供了一种快速、简单的方法来构建功能强大的Web应用程序。它有一个强大的模板系统,可以让您快速地创建复杂的Web应用程序,而无需编写大量的代码。…

    2022-12-30 01:07:45
    0 96 23
  • 验证码接口程序:django简单验证码一直说“无效验证码”

    关于验证码接口程序的问题,在jetleech中经常遇到,我已经按照文档给出的步骤,首先,它工作得很好,但是,我不知道任何错误,它使invalid Captcha。…

    2022-12-09 15:07:39
    0 91 93
  • css预编译器: center;}

    CSS预编译器是一种用于构建CSS的工具,它可以将CSS代码转换为更易于管理和维护的格式。它们可以使CSS代码更加灵活,更易于重用,并且可以帮助开发人员更轻松地组织和管理CSS代码。…

    2023-01-05 06:29:43
    0 41 92
  • linux的共享文件夹在哪个目录:Linux共享文件夹在/etc/samba目录下

    Linux的共享文件夹在/var/lib/samba/目录下,查看该目录下的文件可以使用以下代码:ls /var/lib/samba/…

    2023-01-21 15:31:10
    0 72 85
  • type c接口是啥改变你的充电体验

    示例示例Type C接口是一种新型的USB连接器,它可以支持更高的数据传输速度,比传统的USB 0接口更快。与传统的USB接口不同,Type C接口可以在两端都使用,无需额外的翻转,使连接更加方便快捷。下面是一个使用Type C接口的代码示例:…

    2023-01-12 02:06:09
    0 84 88
  • carwings是什么意思智能汽车连接系统的未来

    Carwings是日产汽车公司推出的一款远程智能汽车服务,它可以帮助用户远程监控汽车的状态和行驶信息,并且可以远程控制汽车的功能。…

    2023-01-19 13:55:38
    0 59 99

发表评论

登录 后才能评论

评论列表(19条)