我正在尝试创建base.html以从我的应用中扩展它。
我的结构:
ROOT(pyshop)
但它无法找到base.html
模板加载器postmortem
Django尝试按以下顺序加载这些模板:
使用引擎django: django.template.loaders.app_directories.Loader:/home/sz/Projects/pyshop/polls/templates/pyshop/base.html(来源不存在) django.template.loaders.app_directories.Loader:/home/sz/Projects/pyshop/venv/lib/python3.5/site-packages/django/contrib/admin/templates/pyshop/base.html(来源不存在) django.template.loaders.app_directories.Loader:/home/sz/Projects/pyshop/venv/lib/python3.5/site-packages/django/contrib/auth/templates/pyshop/base.html(来源不存在)
有什么建议吗?
答案 0 :(得分:2)
应用程序目录加载程序不会搜索您的pyshop/pyshop/templates
目录,因为它不是应用程序。通常的方法是将此目录添加到DIRS
列表。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'pyshop', 'templates'),]
...
}
]
其次,回溯使您看起来好像在做{% extends "pyshop/base.html" %}
而不是问{% extends "base.html" %}
。如果您有{% extends "base.html" %}
,则需要将base.html
模板移至pyshop/pyshop/templates/pyshop/base.html
。