获取对象的历史 [英] Getting the history of an object

查看:104
本文介绍了获取对象的历史的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



如何获取/检索这些数据? p>

干杯

解决方案

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

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

def your_view(request):
...
#这是您修改的对象
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}} 


I use django admin for my users to add their Model objects, as you know django is keeping the track of user actions such as the user who added an item. For an object, At a custom view outside the admin panel, I need to display the user name of the adder.

How can I fetch/retrieve this data ?

Cheers

解决方案

This is just a rough sketch but should be pretty close to what you need for your view:

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)
    ...

Then in your template:

{{ log_entry.user.username }}

这篇关于获取对象的历史的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆