我已经阅读了文档,但是我正努力了解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
└── 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" %}
但这没什么区别。