You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 2.0.2版本TemplateDoesNotExist错误排查求助

解决Django 2.0.2的TemplateDoesNotExist错误

嘿,我帮你排查下这个常见的Django模板找不到问题,结合你给出的settings配置,咱们一步步来定位解决:

1. 先确认模板文件的存放路径是否匹配你的配置

你在TEMPLATES里设置了DIRS: [os.path.join(BASE_DIR, 'templates')],这意味着Django会优先去项目根目录下的templates文件夹找模板。先检查这几点:

  • 项目根目录下确实存在templates文件夹(注意:Linux/macOS系统区分大小写,别把Templates写成templates)
  • 如果你的模板是放在某个app的templates子文件夹里(比如myapp/templates/myapp/index.html),那得确保这个app已经被添加到INSTALLED_APPS里——毕竟APP_DIRS: True的作用就是让Django自动搜索已安装app下的templates文件夹

2. 验证BASE_DIR的正确性

有时候BASE_DIR的定义可能出错,导致拼接出来的模板路径不对。你可以在settings.py里加一行调试代码,运行项目时看控制台输出的路径:

print(BASE_DIR)  # 看看输出是不是你的项目根目录

正常的BASE_DIR定义应该是这样的,你可以对比下:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

3. 检查模板文件名和引用是否完全匹配

  • 视图里引用模板的路径要和实际文件路径一致:比如你写return render(request, 'index.html'),那templates文件夹里必须有index.html;如果是app内的模板,得写成return render(request, 'myapp/index.html')(对应myapp/templates/myapp/index.html)
  • 别忽略大小写!比如Index.html和index.html在Linux系统下是两个完全不同的文件

4. 确认INSTALLED_APPS里包含你的app

如果模板是放在某个app的templates里,一定要把这个app加到INSTALLED_APPS列表,比如:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '你的app名称',  # 这里必须加上,否则APP_DIRS: True不会生效
]

5. 清理Django缓存(开发环境适用)

有时候Django会缓存旧的模板路径,重启下开发服务器,或者运行这条命令清除缓存:

python manage.py clearcache

对了,你提供的DATABASES配置没写完,但这个错误和数据库配置无关,先不用管它,先把模板路径的问题搞定就行。


内容的提问来源于stack exchange,提问作者Mahmood Al Rayhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:25:49