django - 上下文处理器无法与 Django 中的 Jinja2 一起使用

标签 django jinja2

上下文处理器不适用于 Django(版本 2.0.5)中的 Jinja2(版本 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 的上下文处理器的正确解决方案是什么?

最佳答案

您需要安装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',
            ]
        }
    },
]

关于django - 上下文处理器无法与 Django 中的 Jinja2 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50445051/

相关文章:

python - 构建具有动态数量字段的 Django 优雅过滤器

Django Rest Framework - 如何在 ListCreateAPIView 中 POST 外键

python - 用jinja2或python中的正则表达式替换字符串中相同的字符序列

linux - 在 Ansible 中使用 JSON 查询过滤数据以从 ansible_fact 中提取数据

javascript - 将 JSON 对象从 Flask 传递到 JavaScript

python - 如何在 Django REST 框架中创建部分搜索过滤器?

php - 在 PHP 驱动的站点中编码 Django (Python)

javascript - 单击按钮并使用 JavaScript(或 jquery)获取同一行中单元格的值

Ansible strip 空白

python - Django拆分单词并存储在数据库表中