Django报错TemplateDoesNotExist: customer/base.html问题求助
报错原因及对应解决方法
1. customer应用未在项目配置中注册
Django默认只会扫描INSTALLED_APPS列表内注册的应用下的模板文件,未注册应用的模板不会被识别。
解决方法:打开项目根目录下Web_project/settings.py,找到INSTALLED_APPS配置项,添加customer应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增以下行 'customer', ]
2. 模板目录结构错误
应用下的模板需要按固定层级存放,否则无法通过应用名/模板名的路径匹配到。
解决方法:核对customer应用的目录结构,确保符合以下格式:
customer/ ├── __init__.py ├── urls.py ├── views.py └── templates/ # 第一层templates目录 └── customer/ # 第二层和应用同名的目录,不可省略 ├── base.html ├── Hall.html ├── Food_item.html └── About_us.html
3. 模板扫描配置未开启
Django需要开启应用模板扫描开关才会检索各应用下的templates目录。
解决方法:打开Web_project/settings.py,找到TEMPLATES配置项,确认APP_DIRS的值为True:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, # 确保此处为True 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
4. 模板文件名大小写不匹配
Linux、macOS等系统对文件名大小写敏感,若模板文件实际命名和视图中引用的大小写不一致也会触发报错。
解决方法:核对base.html文件名的大小写,和视图render方法中填写的完全一致。
内容的提问来源于stack exchange,提问作者Nawaf
相关产品推荐
相关产品推荐

