我使用django admin为我的用户添加他们的Model对象,因为你知道django正在跟踪用户操作,例如添加项目的用户。对于对象,在管理面板外部的自定义视图中,我需要显示加法器的用户名。
如何获取/检索此数据?
干杯
答案 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来显示变化。)