我有一个base.html模板,我网站上的每一个页面都会扩展。但是,从我收集的信息来看,Django要求模板应该位于app目录中。从应用程序中,如何扩展我在项目的基本目录/ templates /中找到的模板?Django模板结构问题
这里是我的目录排序方式:
project/
|----templates/
| |----base.html
|
|----app1/
| |----templates/
| |----app1/
| |----base.html
| |----index.html
|
|----app2/...
目前,我的index.html扩展APP1/base.html文件:
{% extends 'welcome/base.html' %}
然而,这是不理想的,因为我想扩展project/templates/base.html。从逻辑上讲,我的app1不应该有一个模板。
Settings.py:
TEMPLATE_DIRS = (
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_ROOT, 'templates').replace('\\', '/'),
)
TEMPLATES = [
{
'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',
],
},
},
]
错误是,当我APP1/views.py试图渲染:
{% extends 'welcome/base.html' %}
这是我想的第一件事,我得到了同样的错误“TemplateDoesNotExist在/”。 – user3750325
@ user3750325然后,您应该显示错误和您的模板设置。 – knbk
我更新了我的问题以显示settings.py和错误! – user3750325