2024-10-03 00:23:31 发布
网友
如何覆盖django管理主页以隐藏某些活动。在
例如:
我不想让管理员看到他在管理主页上创建了哪些用户。我想我可以像这样覆盖get_queryset方法:
class ActiveLogManager(models.Manager): get_queryset(): entries = LogEntry.objects.exclude(content_type=4, action_flag=1) return entries
但我不知道行政经理该放在哪里。在
管理主页日志的查询集由模板标记^{}定义。在
因此,您可以重写log模板标记库,方法是在yourapp/templatetags/log.py(yourapp必须在INSTALLED_APPS中的django.contrib.admin之前,以便您的log模板标记库优先于django.contrib.admin。在
log
yourapp/templatetags/log.py
yourapp
INSTALLED_APPS
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
管理主页日志的查询集由模板标记^{} 定义。在
因此,您可以重写
log
模板标记库,方法是在yourapp/templatetags/log.py
(yourapp
必须在INSTALLED_APPS
中的django.contrib.admin
之前,以便您的log
模板标记库优先于django.contrib.admin
。在相关问题 更多 >
编程相关推荐