在django-admin页面中禁用django上下文处理器

Pau*_*aul 3 django django-templates

如何为自定义模板上下文处理器排除Django django-admin页面?

Dhi*_*kur 5

您将必须检测该请求是否针对管理页面,并跳过上下文处理器中想要的内容。

def my_context_processor(request,*args,**kwargs):
    if 'admin' in request.META['PATH_INFO']:
        return {}
    else:
        # do something here
Run Code Online (Sandbox Code Playgroud)


int*_*ist 5

跟进Dhiraj的answer,它在您的系统使用默认(英语/非翻译)URL的情况下有效,并且对于那些使用本地化URL的人来说,我发现以下代码片段以最简单的方式实现了这一目的(与Django 1.10及更高版本相关,未经早期版本测试)。

from django.urls import reverse
if request.path.startswith(reverse('admin:index')):
    return {}
else:
    # do stuff relevant to non-admin pages
Run Code Online (Sandbox Code Playgroud)