Django调试工具栏仅在管理部分工作

11 投票
8 回答
5700 浏览
提问于 2025-04-16 15:51

嘿,

我最近在用Django 1.2.1,前几天发现了Django Debug Toolbar。这个工具看起来非常有用,我很想试试。

我按照说明书一步一步地安装了它。我把中间件放在最后,以防万一,但我用的都是比较常见的中间件(比如常用的、会话、认证和csrf)。不过,它在我的页面上就是不显示。我试着移动中间件的位置,但效果还是一样。

感觉我好像哪里安装错了。但是,当我打开Django的管理界面时,工具栏就会出现。我不太确定我哪里做错了。我的页面内容会影响工具栏的显示吗?它的输出是mime text/html格式……

总之,任何帮助都非常感谢。提前谢谢你。

这是我的Settings.py: pastebin.com/Hu8TgANt

8 个回答

3

我之前也遇到过同样的问题,最后找到了这个帖子……总之,在我的情况下,我发现我引入的某个JavaScript库里有个错误。这导致了JavaScript的运行流程中断。当我修复了这个错误后,Django工具栏就正常工作了。

这也解释了为什么在管理页面上它能正常工作,而在我的应用页面上却不行。

4

这里有一些小建议,虽然我不知道你的代码具体是怎样的:

  • 把 'debug_toolbar.middleware.DebugToolbarMiddleware' 放在你中间件列表的最后一个或者倒数第二个位置(我不太确定它和 flatpagefallback 中间件的配合情况)
  • 在 INSTALLED_APPS 列表中,把 'debug-toolbar' 放在最后
  • 仔细检查一下工具栏的资源是否加载成功
  • 确保所有的工具栏设置都已配置好,比如 (DEBUG_TOOLBAR_CONFIG, INTERNAL_IPS) 等等

错误可能就在这些地方。我知道还有其他与在 flatpages 上显示工具栏相关的问题,所以如果你只是在 flatpages 上检查过,我建议你在其他模块上试试。

21

调试工具栏需要在返回的HTML中至少有一个结束的 </body> 标签。

你可以通过修改 settings.DEBUG_TOOLBAR_CONFIG['INSERT_BEFORE'] 来更改这个标签。

http://django-debug-toolbar.readthedocs.org/en/latest/configuration.html#toolbar-options

撰写回答