После установки jinja2 TemplateDoesNotExist в /admin/

Я установил jinja2, и после этого «DIRS» перестали работать (мне приходится включать их вручную). Изменение APP_DIRS не помогает

шаблоны выглядят так:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.jinja2.Jinja2',
    'APP_DIRS': False,
    'DIRS': ['main/templates', 'shop/templates'],
    'OPTIONS': {
        'environment': 'django_test.create_jinjia_env.environment',
        'autoescape': True,
        'auto_reload': DEBUG,
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

Если не включать шаблоны в DIRS, выдает ту же ошибку.

Не нашел таких вопросов. Заранее спасибо!


person Michael    schedule 03.07.2017    source источник


Ответы (1)


Приложение администратора Django не поставляется с шаблонами Jinja. Если вы хотите использовать Jinja и приложение администратора, вам необходимо включить оба движка в настройки TEMPLATES:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,  # This allows Django to find the templates in the admin app
        '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',
            ],
        },
    },
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',
        # The rest of your Jinja2 settings.
    },

Во-вторых, когда APP_DIRS равно True, серверная часть Jinja2 ищет шаблоны в подкаталоге jinja2. Это означает, что вы должны поместить свои шаблоны в main/jinja2 и shop/jinja2 вместо main/templates и shop/templates.

person Alasdair    schedule 03.07.2017
comment
Спасибо очень доходчиво и лаконично! - person Michael; 03.07.2017
comment
Кроме того, если вы наследуете существующее приложение с Jinja и у вас возникли проблемы с включением администратора постфактум, проверьте этот ответ: stackoverflow.com/a/ 49980601/1025430 - person Chris; 23.04.2018
comment
ВНИМАНИЕ: Обратите внимание, что ПОРЯДОК двух записей может быть важен. В моем случае, если я сначала поставлю DjangoTemplates, администратор будет работать, а страницы Jinja — нет; если я делаю наоборот, то оба работают. - person msb; 08.12.2018