一尘不染

绑定到Django Admin的模型历史记录

django

设置:

  • 我正在开发一个Django应用程序,该应用程序允许用户在数据库中创建一个对象,然后根据需要返回并对其进行编辑。
  • Django的管理站点保留了通过管理站点对对象所做的更改的历史记录。
    问题:

  • 如何将我的应用程序挂接到管理站点的更改历史记录,以便可以看到用户对其“内容”所做的更改历史记录?


阅读 709

收藏
2020-03-29

共1个答案

一尘不染

管理员历史记录只是一个与其他Django应用程序一样的应用程序,例外是在管理站点上的特殊位置。

该模型位于django.contrib.admin.models.LogEntry中。

当用户进行更改时,请像下面这样添加到日志中(从contrib / admin / options.py中偷偷地偷了:

from django.contrib.admin.models import LogEntry, ADDITION
LogEntry.objects.log_action(
    user_id         = request.user.pk, 
    content_type_id = ContentType.objects.get_for_model(object).pk,
    object_id       = object.pk,
    object_repr     = force_unicode(object), 
    action_flag     = ADDITION
)

object当然,更改的对象在哪里。

2020-03-29