覆盖django管理员活动日志

时间:2016-03-17 16:48:33

标签: python django django-models django-admin

如何覆盖django admin主页以隐藏某些活动。

例如:

我不希望管理员在管理主页上看到他创建了哪些用户。我认为我可以覆盖get_queryset方法,如下所示:

class ActiveLogManager(models.Manager):

    get_queryset():
        entries = LogEntry.objects.exclude(content_type=4, action_flag=1)
        return entries

但我不知道管理员经理的位置。

1 个答案:

答案 0 :(得分:2)

管理主页日志的查询集由模板标记django.contrib.admin.templatetags.log.get_admin_log定义。

因此,您可以通过在log中重新定义yourapp/templatetags/log.py模板标记库来覆盖yourapp模板标记库(django.contrib.admin必须在INSTALLED_APPS log之前,以便您的django.contrib.admin模板标记库优先于from django.contrib.admin.templatetags.log import * # noqa def __AdminLogNode_render(self, context): if self.user is None: entries = LogEntry.objects.all() else: user_id = self.user if not user_id.isdigit(): user_id = context[self.user].pk entries = LogEntry.objects.filter(user__pk=user_id) entries = entries.exclude(content_type=4, action_flag=1) context[self.varname] = entries.select_related('content_type', 'user')[:int(self.limit)] return '' __AdminLogNode_render.__name__ = 'render' AdminLogNode.render = __AdminLogNode_render ' s。

Ǧ