我在我的一个模型中添加了一个新字段,我想用执行特定操作的用户的名称来填充它(此处,验证者: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(使用前将#替换为@)