Я прочитал документы, но я изо всех сил пытаюсь понять, в каком именно порядке django ищет шаблоны.
Мои настройки шаблона:
TEMPLATES = [
{
"BACKEND": "django.template.backends.jinja2.Jinja2",
"DIRS": [],
"APP_DIRS": True,
},
{
"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",
]
},
},
]
У меня есть папка «templates» в корне проекта, которая имеет такую структуру:
templates
└── jinja2
└── emails
├── base_email.html
└── base_email.plain
И у каждого приложения есть своя «папка шаблонов», например:
templates
└── jinja2
└── emails
└── account
├── validate_email.html
└── validate_email.plain
Шаблоны называются так:
render_to_string(
"jinja2/emails/account/validate_email.html", context
)
Кажется, что он может найти начальный шаблон (validate_email), но при проверке электронной почты пытается расширить "base_email":
{% extends "base_email.html" %}
Я пытался заменить этот тег extends
на:
{% extends "jinja2/emails/base_email.html" %}
но это не имело значения.