Django не может найти шаблоны с движком jinja2
Я собираюсь изменить шаблонные движки django на jinja2, но после настройки setup.py моего проекта, движки jinja2 не работают, ниже приведены мои коды.
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [
BASE_DIR / 'templates',
],
'APP_DIRS':True,
'OPTIONS':{
'environment':'emotion.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',
],
},
},
]
далее следует jinja2.py
jinja2.py
def environment(**options):
env = Environment(**options)
env.globals.update(
{
'static':static,
'url':reverse,
}
)
return env
Но пока я запускаю сервер, кажется, что jinja2 не работает. jinja2 не ищет нужный мне файл.
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine jinja2:
This engine did not provide a list of tried templates.
Using engine django:
django.template.loaders.app_directories.Loader: D:\Anaconda3\envs\Web\lib\site-packages\django\contrib\admin\templates\catalog\jinj.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\Anaconda3\envs\Web\lib\site-packages\django\contrib\auth\templates\catalog\jinj.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\Emotion\emotion\catalog\templates\catalog\jinj.html (Source does not exist)
Движок django работает идеально, но я меняю имя файла, чтобы проверить, где он ищет. Пока я переименовываю его обратно в правильное имя, движок django работает, а jinja2 - нет.
Мой проект называется 'emotion', в котором есть каталог приложений. Путь к html - emotion/catalog/templates/catalog/jinja.html
Я решаю эту проблему с заменой пути настройки потому что я использую неправильный url DIRS в TEMPLATES из jinja2 в settings.py.
Должно быть
'DIRS': [
BASE_DIR / 'catalog/templates',
]
вместо
'DIRS': [
BASE_DIR / 'templates',
]