Django报错TemplateDoesNotExist的问题及解决
作者:该学习去了
Django报错TemplateDoesNotExist问题
问题描述
使用Django中的模板创建视图,当return一个html文件的时候,出现了TemplateDoesNotExist的错误
解决方法
对于这个错误,显然是Django没有找到Html文件导致的,我们应该逐个排查问题
1. 是否注册了应用
描述:
Django提供了一个方法,当我们在 Setting.py
内的 TEMPLATES
配置项中设定 'APP_DIRS': True
时,Django将会在应用目录下的 templates
寻找文件
注意点:如果我们使用这种方法来声明模板的位置,有一个前提是我们需要在 INSTALLED_APPS
中注册了这个应用Django才能顺利找到
2.在DIRS中声明
描述:
没有使用1中的方法,我们可以在DIRS中声明模板的位置,声明方法如下 。声明完毕之后Django将会按照DIRS中的顺序依次查找文件
3.检查一下应用子文件夹名称templates是否拼写错误
4.换一个浏览器或者清除一下浏览器缓存试一试
描述:
这个方法是笔者想出来但没有实践的,因为我出现TemplateDoesNotExist的问题时,即在Setting中声明了应用,也创建了templates文件夹并且文件引用的都很正确。
我通过在setting.py中添加import语句导入应用来解决的问题(但是Setting.py不需要import应用的包)当然在此之后我把import删除没有出现TemplateDoesNotExist。
我初步猜测是浏览器缓存更新不及时导致的,由于问题不具有复现性,这个猜想也不能实践。
django.template.exceptions.TemplateDoesNotExist: bootstrap3/errors.html
django在使用xadmin时报的错
django.template.exceptions.TemplateDoesNotExist: bootstrap3/errors.html
原因
这是由于django高版本与xadmin低版本不兼容导致的。
解决方案
在安装的虚拟环境中找到 bootstrap3/errors.html
,可以发现xadmin只有两个页面使用到了 bootstrap3/errors.html
,把它们注释或者删除即可。
把 login.html
页面的第46行注释掉
把 form.html
的第19行注释掉
然后重启项目即可。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- go语言import报错处理图文详解
- Go语言将string解析为time.Time时两种常见报错
- 解决MySQL报错:The last packet sent successfully to the server was 0 milliseconds ago.
- go mod tidy报错解决方法详解
- go引入自建包名报错:package XXX is not in std解决办法
- goland安装1.7版本报错Unpacked SDK is corrupted解决
- Django-Xadmin后台首页添加小组件报错的解决方案
- 在 SHELL 脚本中调用另一个 SHELL 脚本的方法(报错: go:not found)
- 解决MongoDB 位置查询报错planner returned error: unable to find index for $geoNear query的问题
- django报错设置auth User的解决
- 解决Oracle DISTINCT 报错 inconsistent datatypes: expected - got CLOB(数据类型不一致: 应为 -, 但却获得 CLOB)的问题
- Java中报错org.springframework.jdbc.UncategorizedSQLException的多种解决方法
- 执行go build报错go: go.mod file not found in current directory or any parent directory
- Go导入不同目录下包报错的解决方法
- 解决MongoDB6.0报错:"mongo"不是内部或外部命令,也不是可运行的程序或批处理文件
- maven报错:Failed to execute goal on project问题及解决
- Mongodb启动报错完美解决方案:about to fork child process,waiting until server is ready for connections.
- golang中package is not in GOROOT报错的真正解决办法
- Go语言报错:'godoc' 不是内部或外部命令,也不是可运行的程序(godoc无法使用处理)解决方法