如何在Django CMS的base.html中引入应用模板文件?
解决Django CMS中模板include找不到的问题
我来帮你排查这个模板无法找到的问题,按下面的步骤逐一检查应该就能解决:
确认应用已加入INSTALLED_APPS
打开项目根目录下的settings.py,找到INSTALLED_APPS列表,确保里面添加了'was_this_helpful'。Django只会去已注册应用的templates目录里查找模板,没注册的话肯定找不到。示例配置:INSTALLED_APPS = [ # ...其他已有的应用 'was_this_helpful', ]检查TEMPLATES配置中的APP_DIRS设置
同样在settings.py的TEMPLATES配置项里,确认APP_DIRS被设为True。这个选项告诉Django要不要去各个已注册应用的templates目录里找模板,设成False的话就只会用DIRS里指定的路径了。示例配置:TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], # 项目级别的模板目录 'APP_DIRS': True, # 这个必须是True! 'OPTIONS': { 'context_processors': [ # ...默认的上下文处理器 ], }, }, ]核对模板路径和文件名的正确性
你写的{% include 'was_this_helpful/dialog.html' %}路径是符合规范的,因为你的模板确实在was_this_helpful/templates/was_this_helpful/dialog.html。不过要仔细检查:- 文件名有没有拼写错误(比如是不是误写成
dialoge.html了?) - 大小写是否匹配(如果是Linux或macOS环境,文件名区分大小写,别把
Dialog.html和dialog.html搞混)
- 文件名有没有拼写错误(比如是不是误写成
清除模板缓存并重启服务器
Django有时候会缓存模板文件,哪怕你已经调整了文件结构。试试重启你的Django开发服务器,生产环境可以用python manage.py clearcache命令清除模板缓存。
如果以上步骤都试过还是不行,再检查下项目有没有自定义的模板加载器影响了查找逻辑,但大部分情况下前面几个步骤就能解决问题啦。
内容的提问来源于stack exchange,提问作者pinksharpii
相关产品推荐
相关产品推荐

