我在我的一个模型中添加了一个新字段,我想用一个执行某个操作的用户的名字填写它(在此处,验证者:USER)。
我看到的最简单的方法是从这个信息已经存在的历史中获取它。
例如,从这张图片中,我会得到用户' admin'如果他执行了动作'更改了电子邮件'
如何获取对象的历史记录(如django Admin中所示)?
答案 0 :(得分:4)
该信息存储在LogEntry
模型中。
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()
中的更多信息
确保您在 ReadOnly 模式下访问此项,否则您将搞乱日志历史记录。