如何在 django admin 中获取对象的历史记录?

2024-02-08

我在我的一个模型中添加了一个新字段,我想用执行特定操作的用户的名称来填充它(此处,验证者:USER)。

我看到的最简单的方法是从该信息已经存在的历史记录中获取它。

例如,从这张图片中,如果用户执行“更改电子邮件”操作,我将获得“管理员”

如何获取对象的历史记录(如 django Admin 中所示)?


该信息存储在LogEntry model.

from django.contrib.admin.models import LogEntry

它的定义是:

class LogEntry(models.Model):
    action_time = models.DateTimeField(_('action time'), auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    content_type = models.ForeignKey(ContentType, blank=True, null=True)
    object_id = models.TextField(_('object id'), blank=True, null=True)
    object_repr = models.CharField(_('object repr'), max_length=200)
    action_flag = models.PositiveSmallIntegerField(_('action flag'))
    change_message = models.TextField(_('change message'), blank=True)

    objects = LogEntryManager()

更多信息在源代码 https://github.com/django/django/blob/master/django/contrib/admin/models.py#L24

确保您可以在以下位置访问此内容:ReadOnly模式,否则你会弄乱你的日志历史记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 django admin 中获取对象的历史记录? 的相关文章

随机推荐

  • 当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描

    问题 我有一个 SQL Server 表 其中有一个 varchar 列和数百万行 它已建立索引 从 SQL Server 查询工具中运行查询速度很快 因为它使用索引 当我从 Java JDBCPreparedStatement 运行查询时
  • Django 验证单元测试

    我试图模拟 django contrib auth 验证方法的返回值 该方法在视图的登录方法中调用 有view py代码 def login request if request method POST username get usern
  • 如何更改 Mac OS X 启动板中显示的 Java 应用程序名称

    当我的申请写成Java with SWT运行在OS X 都从下Eclipse和来自jar 它在启动板中的名称为 java 如图所示 在我的代码的开头我调用Display setAppName MyApp 并且菜单栏和菜单项中的应用程序名称是
  • PhoneGap 3.1.0 没有节点/npm 和命令行工具

    是否可以在没有节点包的情况下下载和使用 PhoneGap 3 1 0 由于网络连接受到限制 从 git hub 命令行安装节点 PhoneGap 模块 Cordova 模块和插件很烦人 使用 PhoneGap 2 9 似乎是那么容易和简单
  • 错误:无法构建 gem 本机扩展

    gem install unf ext v 0 0 6 localhost workflow boyun ryan007 gem install unf ext v 0 0 6 Building native extensions This
  • AVMutableComposition 输出冻结在第一个视频的最后一帧

    我正在尝试使用 AVMutableCompositions 将多个剪辑 视频 合并为一个 我已经成功完成了这一操作以及旋转和翻译每条指令 但是 仍然存在一个问题 当第一个剪辑完成时 输出冻结在最后一帧 第一个剪辑的最后一帧 仅当有另一个剪辑
  • 使用 VBA 声明相对于活动单元格的范围

    我需要声明一个相对于活动单元格的范围对象 问题是 每次宏运行时我想要选择的行数和列数都不同 例如 我有两个变量 numRows and numCols 我想选择一个范围 其左上角有 ActiveCell 单元格的行为 ActiveCell
  • 使用 Linq to SQL 进行多线程处理

    由于原始线程 使用 Linq to SQL 进行多线程处理 https stackoverflow com questions 1815537 现在已经很老了 我想我应该就类似的主题发布另一个问题 考虑一个场景 其中 DomainServi
  • Swift:数组内的字典

    Data firstName Foo lastName Bar firstName John lastName Doe 如何使用 swift 数组和字典拥有这种结构 该数据显示数组内的字典 对吧 所以我建议 var persons Arra
  • 从终端中的 url 运行 python 脚本

    我想知道有什么方法可以从终端中的 url www blahblah com script py 执行 python 脚本而不将文件下载到磁盘吗 Thanks 您希望它在客户端上运行 还是在服务器上运行 将返回结果 如果您想在客户端上运行它
  • 使用 REST Api Visual Studio Team Services 更新文件

    有没有办法使用 HTTP 动词更新 Visual Studio 团队服务帐户上项目中的文件内容 类似于在 github 上完成的操作https developer github com v3 repos contents update a
  • 将“最大长度”添加到正则表达式

    如何使用一个属性来扩展已经存在的正则表达式 该属性告诉正则表达式不能超过最大长度 比方说 255 我有以下正则表达式 a zA Z0 9 0 9 1 3 0 9 1 3 0 9 1 3 a zA Z0 9 a zA Z 2 4 0 9 1
  • 导入 Python 模块失败 (http.cookies)

    从我在这里和其他地方的研究中了解到 似乎如果a 模块位于Python搜索路径中或b 包含在Python搜索路径中的包中 则导入命令应该能够查找并导入模块 在下面的交互式脚本中 请注意这两个条件都已满足 http 文件夹包含一个 init p
  • 设置 Linq to NHibernate ADO 命令超时

    如何增加 NHibernate Linq To Sql 中的超时 不是连接超时 而是 ado 命令超时 using ISession session NHibernateHelper OpenSession NHibernateHelper
  • self.window 始终为零

    我目前正在尝试使用窗口控制器显示一个窗口 这就是我所拥有的 NSWindow 子类 import Cocoa import CoreLocation class TweetWindow NSWindow var locationManage
  • 尝试自我更新作曲家时出错

    当我尝试自我更新作曲家时 我收到 权限被拒绝 错误消息 但是当我尝试使用 sudo 执行相同的命令时 我收到错误消息 找不到命令 请帮我 在带有 sudo 的终端中 我输入了composer phar的完整路径 它对我有用 sudo usr
  • GetResponseAsync 不接受取消令牌

    看来 GetResponseAsync 不接受 Async Await 中的cancelToken 所以问题是 如果我需要从响应中收集 Cookie 我该如何取消以下过程 using HttpWebResponse response Htt
  • 如何克服笑话“初始化前无法访问”问题?

    设置 js export default web a 1 mobile b 2 获取设置 js import settings from settings export const getSetting platform gt return
  • 如何获取 Windows 7 上所有服务的列表?

    有没有一种方法可以获取 Win 7 中所有服务的完整列表 而无需安装 Net Framework 4 等 API 我想尽可能本地地获取列表 以管理员身份运行 cmd 控制台 然后运行 sc query type service state
  • 如何在 django admin 中获取对象的历史记录?

    我在我的一个模型中添加了一个新字段 我想用执行特定操作的用户的名称来填充它 此处 验证者 USER 我看到的最简单的方法是从该信息已经存在的历史记录中获取它 例如 从这张图片中 如果用户执行 更改电子邮件 操作 我将获得 管理员 如何获取对