python - django-simple-history 从 python shell 跟踪用户

标签 python django django-simple-history

我们正在使用 django-simple-history 来跟踪模型中的更改。所有模型都有一个 history = HistoricalRecords() 字段。从 python shell 更改模型时,系统会跟踪更改,但 changed_by 字段保存为 None。当在 admin 中进行更改时,simple_history 中间件会从登录者那里获取 User 实例。显然,在 shell 中我们没有这个。有没有办法根据现有的 Account 对象手动注入(inject) User 实例?

不幸的是,我无法更改任何这些模型,因此我无法将任何历史用户 getter 和 setter 添加到我们的模型中(项目经理对重构非常严格,我们也有很多模型)

最佳答案

docs所示,对于一个名为 ObjectWithHistory 的具有历史记录的特定对象,您可以在保存之前在该对象上设置历史用户,如下所示:

o = ObjectWithHistory(*kwargs)
o._history_user = this_user
o.save()

关于python - django-simple-history 从 python shell 跟踪用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58272381/

相关文章:

django - 基于django类的 View 中模板的命名规则是什么

python - Django - 如何可视化信号并保存覆盖?

javascript - 替换 HTML 表格中的值?

django - 从管理员外部访问 Django 简单历史日志?

python - 从 Django 管理中删除历史按钮

python - yaml.dump 在多行字符串中添加不需要的换行符

python - 从python中的给定数据生成二叉树

python - 如何使用 python 在 Raspberry Pi 上打开 PowerPoint?

python - 在 python 中发送邮件时出错

python - 激活阿拉伯语翻译后,Django 表单占位符和标签未翻译