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

Tan*_*yan 2 python django

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

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

ozg*_*gur 5

您可以按照此处的说明定义模板上下文处理器:

context_processors.py

from django.conf import settings

def interceptor(request):
    return {'interceptor': settings.HTTP_AJAX_INTERCEPTOR}
Run Code Online (Sandbox Code Playgroud)

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'project.context_processors.interceptor',
)
Run Code Online (Sandbox Code Playgroud)

base.html文件

<html>
 ...
 <body>
  <div>{{ interceptor }}</div>
  ...
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅文档.