【问题标题】:How to get the history of an object in django admin?如何在 django admin 中获取对象的历史记录?
【发布时间】:2014-08-28 00:38:52
【问题描述】:

我在我的一个模型中添加了一个新字段,我想用执行特定操作的用户的名称来填写它(这里,验证者:USER)。

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

例如,从这张图片中,如果用户执行“更改电子邮件”操作,我会得到用户“管理员”

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

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    该信息存储在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 模式下访问它,否则您会弄乱您的日志历史记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 2020-12-14
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多