获取对象的历史记录

时间:2009-09-09 07:21:54

标签: django django-models django-admin

我使用django admin为我的用户添加他们的Model对象,因为你知道django正在跟踪用户操作,例如添加项目的用户。对于对象,在管理面板外部的自定义视图中,我需要显示加法器的用户名。

如何获取/检索此数据?

干杯

2 个答案:

答案 0 :(得分:2)

这只是一个粗略的草图,但应该非常接近您的观点所需:

from django.contrib.admin.models import LogEntry, ADDITION

def your_view(request):
    ...
    # This is your object that was modified
    my_obj = ...
    log_entry = LogEntry.objects.filter(
        object_id=my_obj.id,
        action_flag=ADDITION,
        content_type__id__exact=ContentType.objects.get_for_model(MyModel).id)
    ...

然后在你的模板中:

{{ log_entry.user.username }}

答案 1 :(得分:0)

如果您希望添加超出上述内容的其他功能,我已经使用了一个名为django-reversion的应用程序,除了使日志可访问外,还会提供已更改内容的副本(顺便说一下,也可以用它来生成带有或不带HTML的DIFF来显示变化。)

相关问题