在上下文中为在Django中呈现的所有模板发送值,而不在每个视图中发送上下文

时间:2015-09-24 06:51:41

标签: python django

假设我的settings.py文件中有一个变量。现在我希望在整个项目的所有模板中访问此值。但我不想在每个视图中的context-data中发送此值。我想像通常一样在上下文中发送其他数据。但是这个特定的一个要在所有模板中访问。 Django有没有这样的过程?

为了澄清一点,我想实现“拦截器”的概念,我们用它来操纵“HTTP”ajax请求。

1 个答案:

答案 0 :(得分:5)

您可以按照here

中的说明定义模板上下文处理器

<强> context_processors.py

from django.conf import settings

def interceptor(request):
    return {'interceptor': settings.HTTP_AJAX_INTERCEPTOR}

<强> settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'project.context_processors.interceptor',
)

<强> base.html文件

<html>
 ...
 <body>
  <div>{{ interceptor }}</div>
  ...
 </body>
</html>

有关详细信息,请参阅documentation