【发布时间】:2023-03-28 14:34:01
【问题描述】:
我们正在使用 django-simple-history 来跟踪我们模型的变化。所有模型都有一个history = HistoricalRecords() 字段。从 python shell 对模型进行更改时,会跟踪更改,但是 changed_by 字段保存为 None。当在 admin 中进行更改时,simple_history 中间件会从登录的人那里获取 User 实例。显然在 shell 中我们没有。有没有办法根据现有的 Account 对象手动注入 User 实例?
很遗憾,我无法更改这些模型中的任何一个,因此我无法将任何历史用户 getter 和 setter 添加到我们的模型中(项目经理对重构非常严格,我们也有很多模型)
【问题讨论】:
-
“根据现有的 Account 对象手动注入 User 实例”是什么意思?
-
我可能没有使用正确的术语。您应该能够从
HistoricalRecords.thread.request.user获取用户,但在 shell 中,本地线程没有请求属性。我想知道是否有某种方法可以附加它 -
但是你会附加什么用户呢?没有办法知道。
-
我们正在通过 shell 从外部服务 (jenkins) 运行脚本,该服务将拥有用户电子邮件,该电子邮件对应于数据库中的一个帐户
标签: python django django-simple-history