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

时间:2014-07-07 13:47:47

标签: django django-models django-admin

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

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

Just so you see exactly what page I'm talking about

例如,从这张图片中,我会得到用户' admin'如果他执行了动作'更改了电子邮件'

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

1 个答案:

答案 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()

source code

中的更多信息

确保您在 ReadOnly 模式下访问此项,否则您将搞乱日志历史记录。