Django框架中TemplateDoesNotExist报错排查求助
解决Django TemplateDoesNotExist报错的排查方案
检查文件名大小写:类Unix系统(Linux、macOS)下Django对文件名大小写敏感,确认新建模板的文件名和视图中引用的完全一致,比如视图里写
post_detail.html,实际文件不能是Post_Detail.html。核对模板目录层级:确保新建模板放在对应应用的模板子目录下,比如应用
myapp的模板路径应为myapp/templates/myapp/,而非直接放在myapp/templates/根目录(除非你在TEMPLATES的DIRS里配置了该根目录)。清除Django缓存:执行命令
python manage.py clearcache,旧的模板路径缓存可能导致新模板不被识别。确认应用已注册:再次检查
settings.py的INSTALLED_APPS列表,新建模板所属的应用必须在列表中,Django才会搜索其下的模板目录。绝对路径测试:在视图中临时用绝对路径加载模板,验证文件本身是否可读取:
from django.shortcuts import render from django.conf import settings import os def target_view(request): template_full_path = os.path.join(settings.BASE_DIR, 'your_app/templates/your_app/new_template.html') return render(request, template_full_path)如果能正常加载,说明问题出在Django的模板查找配置上。
检查文件权限:类Unix系统下给新建模板添加可读权限,执行
chmod 644 /path/to/your/new_template.html,避免因权限不足导致Django无法读取文件。
内容的提问来源于stack exchange,提问作者Sahil Singhai
相关产品推荐
相关产品推荐

