Контекстные процессоры не работают с Jinja2 в Django - PullRequest
0 голосов
/ 21 мая 2018

Контекстные процессоры не работают с Jinja2 (версия 2.10) в Django (версия 2.0.5).Это то, что я сделал.Создал процессор контекста следующим образом:

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',
        ],
    },
},

]

Итак, каково правильное решение для разрешения использования контекстных процессоров с Jinja2 в Django?

1 Ответ

0 голосов
/ 03 июня 2018

Вам необходимо установить django-jinja , затем:

изменить: 'BACKEND': 'django.template.backends.jinja2.Jinja2',
на "BACKEND": "django_jinja.backend.Jinja2",

После этого переместите ваш процессор контекста в jinjaOPTIONS['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',
            ]
        }
    },
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...