django根据请求向所有视图添加上下文

时间:2015-11-16 13:40:09

标签: django

如果请求中有一个参数,如nv = false,我需要在没有导航栏的情况下渲染我的网站,并且我想基于此将一个变量传递给上下文,以便主模板显示或不显示该块。我的网站也有很多json-rpc函数,我不想在它上面增加额外的开销。如何在不重写所有观点的情况下完成此操作? (它们不是基于类的,我的网站使用django 1.8)

1 个答案:

答案 0 :(得分:12)

只需添加将此变量添加到上下文的上下文处理器。上下文处理器是一个简单的python函数

def navbar(request):
    return {'navbar_enabled': request.GET.get('nv', False)

并将其添加到模板上下文处理器列表

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'MODULE_NAME.navbar',
    ...
)