我使用django admin为我的用户添加他们的模型对象,因为您知道django正在保持用户操作(如添加项目的用户)的轨道。对于一个对象,在管理面板外的自定义视图中,我需要显示加法器的用户名。获取对象的历史记录
如何获取/检索这些数据?
干杯
我使用django admin为我的用户添加他们的模型对象,因为您知道django正在保持用户操作(如添加项目的用户)的轨道。对于一个对象,在管理面板外的自定义视图中,我需要显示加法器的用户名。获取对象的历史记录
如何获取/检索这些数据?
干杯
这只是一个粗略的草图,但应该是相当接近你需要为您的看法:
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 }}
这看起来很有希望,因为我的项目可以有多个动作,我如何检索“添加”动作,我一直在检查“django_admin_log”的数据库结构,看起来像“动作标志”保持动作。 – Hellnar 2009-09-09 08:11:59
from django.contrib.admin.models import ADDITION filter(...,action_flag = ADDITION) – 2009-09-09 09:04:41
已编辑的答案包括ADDITION过滤器 – 2009-09-09 09:06:12
如果”除了上面提到的功能之外,我正在使用名为django-reversion的应用程序,除了使日志可访问外,它还提供了c的副本挂起(顺便说一句,也可以用来生成一个带或不带HTML的DIFF显示更改)。
我做了一个重要的编辑,确保id匹配该特定模型的id(因为不同的模型可以包含具有相同id的对象)。 – 2009-09-09 08:12:48