Django报错TemplateDoesNotExist:模板文件存在却提示不存在求助
Django模板存在却提示不存在的解决办法
我正在学习用Django开发副业项目,设置模板时反复遇到同一个问题:已经指定了应用的模板目录,系统却提示模板文件不存在,但实际查看目录时,文件确实存在。
错误信息
系统抛出
TemplateDoesNotExist异常,提示无法找到myapp/index.html,并列出了所有尝试查找的模板路径。
我的项目目录结构
myproject/ ├── myapp/ │ ├── templates/ │ │ └── index.html │ ├── views.py │ └── models.py ├── myproject/ │ ├── settings.py │ └── urls.py └── manage.py
排查解决步骤
- 确认
settings.py的INSTALLED_APPS中已添加你的应用(比如myapp),Django只会扫描已注册应用的模板目录。 - 调整模板存放路径:应用内的模板需要放在
myapp/templates/myapp/目录下,而非直接在myapp/templates/下。Django默认会在应用的templates目录下匹配应用名称的子目录,避免跨应用模板重名冲突。比如要调用myapp/index.html,实际路径应为myapp/templates/myapp/index.html。 - 检查视图中的模板调用路径:如果在
views.py中使用render(request, 'myapp/index.html'),必须确保上述路径存在;若直接写render(request, 'index.html'),则需保证项目根目录的templates文件夹中有该文件,同时settings.py的TEMPLATES配置里APP_DIRS设为True。 - 核对文件名大小写:Linux/macOS系统路径区分大小写,确保调用模板时的名称和实际文件名完全一致。
- 清除Django缓存:运行
python manage.py clearcache,避免缓存导致的路径识别异常。
内容的提问来源于stack exchange,提问作者Martin Nelson
相关产品推荐
相关产品推荐

