Django项目新增workorders应用出现TemplateDoesNotExist错误排查
排查settings.py中导致TemplateDoesNotExist的配置遗漏点
针对你的场景,从settings.py配置角度,重点检查以下几项:
1. 确认INSTALLED_APPS正确注册workorders
检查settings.py里的INSTALLED_APPS列表,确保'workorders'已添加(通常放在内置应用之后):
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 自定义应用 'assetlist', 'workorders', # 必须存在这一行 ]
2. 检查TEMPLATES的APP_DIRS是否为True
Django默认会搜索INSTALLED_APPS内各应用的templates目录,但需确保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', ], }, }, ]
3. 验证模板加载器配置(进阶排查)
若自定义了TEMPLATES的loaders选项,必须包含django.template.loaders.app_directories.Loader,否则会禁用应用内模板搜索:
'OPTIONS': { 'loaders': [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 必须保留这一行 ], # ...其他上下文处理器配置 }
补充:模板路径结构验证(非settings配置但强相关)
虽然不属于settings配置,但需确保你的tenant_list.html放在workorders/templates/workorders/目录下(应用内templates目录下需再建一个与应用同名的子目录),通用视图默认会查找应用名/模板名.html的路径,直接放在workorders/templates/下会导致Django找不到。
内容的提问来源于stack exchange,提问作者Declan Morgan
相关产品推荐
相关产品推荐

