0%

Django 踩坑

Django 踩坑记录

因为在学 Python 的关系,学习了一下 Django 开发 Web。

Python 不愧是一门奔放且奇特的语言,框架也这么不同寻常。

Django 的项目目录结构就很让我迷惑,而且目录中不包含静态 html 等文件,却能启动服务打开网页……

当然,只要仔细查一下就会发现这些都是来自 django 包内。

此处记录一个让我折腾了很久的坑。

上午课内摸鱼写的时候碰到的问题。在写登录登出的时候,自定义的 logged_out.html 无法覆盖默认的登出页面。

试了很多次,都是跳转到了 admin 的登出页面。不用想也知道,这里肯定是 django 内自带的页面被调用了,而我编写的为什么没有被调用呢?按理说,一般用户新建的东西优先级应该要高于默认自带。

然后我检查了 django 源码,没看出什么不对的地方。只能说无法理解,为什么调用 registration/logged_out.html 无法获取到我写的文件。login.html 已经被正常调用了。

于是在各搜索引擎搜索,翻来覆去,找不到。

在 MDN 的 django 教学看到了这种情况的描述,但是没有提供有效的解决方案。

于是我只能用英文搜索,于是成功在 stackoverflow 查到了解决方案

一切源自于我在 settings.py 中写入自建的 app 时,我写的在 django 自带的 admin 模块之下,这个模块恰好自带了 logged_out.html

看完之后真的很无语。看了一下,这个问题的提出是在 2016 年。2020 年了,这个问题居然还在。粗略的翻阅文档也没有看到这方面的东西。👍