上下文处理器在Django(Ver 2.0.5)中没有使用Jinja2(Ver 2.10)。这就是我所做的。创建了一个上下文处理器,如下所示:
def test_con_proc(request):
return {
'test_con_proc': "Testing Context Processors",
}
并且,在我的模板中使用它来调用它:
{{ test_con_proc }}
另外,将此添加到settings.py文件中,如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [....)
],
'APP_DIRS': True,
'OPTIONS': {
'environment': '....jinja2.environment',
},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [.....],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'dashboard.context_processors.test_con_proc',
],
},
},
那么,在Django中使用Jinja2解析使用上下文处理器是不是正确的解决方案?
答案 0 :(得分:0)
您需要安装django-jinja然后:
更改:'BACKEND': 'django.template.backends.jinja2.Jinja2',
到"BACKEND": "django_jinja.backend.Jinja2",
之后将您的上下文处理器移至jinja OPTIONS['context_processors']
因此,您的设置应与此类似:
TEMPLATES = [
{
'BACKEND": "django_jinja.backend.Jinja2',
'DIRS': [.....],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'dashboard.context_processors.test_con_proc',
]
}
},
]