如果您使用“$ django-admin startproject project”启动一个项目,则会创建一个名为“project-folder-name”的文件夹,即 project/。添加一些应用程序并在“settings.py”中添加应用程序 -> INSTALLED_APPS=[..., app1, app2] 并在项目中创建一个模板文件夹后/我得到了这样的结构:
project/
project/
templates/
base.html
app1/
templates/
app1/
page1.html
page2.html
app2/
templates/
app2/
page1.html
page2.html
在模板 app1/template/page1.html 我写的
{% 扩展 'base.html' %}
并出现“TemplateDoesNotExist at /”错误消息。
然后我添加了另一个名为“core”的应用程序并将 base.html 添加到模板文件夹(在 settings.py 中编辑 INSTALLED_APPS),我现在得到了这个结构:
project/
project/
templates/ (unused)
base.html (not seen)
core/
templates/
base.html
app1/
templates/
app1/
page1.html
page2.html
[...]
现在错误信息消失了,base.html 找到了templates/app1/page1.html:
{% extends 'base.html' %}
您可以像这样更改文件夹结构:
core/
templates/
core/
base.html
那你需要把模板app1/page1.html改成
{% extends 'core/base.html' %}
也是。
作为替代方案,您还可以在此说明“项目”中将“您的项目名称”添加到您的设置文件中,如下所示:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'project', # your project name main folder
'core',
'App1',
'App2',
]
现在 django 也找到了 project/templates/base.html。但是我不知道是否推荐这种解决方案。
project/
project/
templates/
base.html (now it is found)
附:谢谢(我的赞成票还没有计算在内)如果这个答案在某种程度上清晰易懂,请评论我