Django调试工具栏仅在管理部分工作
嘿,
我最近在用Django 1.2.1,前几天发现了Django Debug Toolbar。这个工具看起来非常有用,我很想试试。
我按照说明书一步一步地安装了它。我把中间件放在最后,以防万一,但我用的都是比较常见的中间件(比如常用的、会话、认证和csrf)。不过,它在我的页面上就是不显示。我试着移动中间件的位置,但效果还是一样。
感觉我好像哪里安装错了。但是,当我打开Django的管理界面时,工具栏就会出现。我不太确定我哪里做错了。我的页面内容会影响工具栏的显示吗?它的输出是mime text/html格式……
总之,任何帮助都非常感谢。提前谢谢你。
这是我的Settings.py: pastebin.com/Hu8TgANt
8 个回答
我之前也遇到过同样的问题,最后找到了这个帖子……总之,在我的情况下,我发现我引入的某个JavaScript库里有个错误。这导致了JavaScript的运行流程中断。当我修复了这个错误后,Django工具栏就正常工作了。
这也解释了为什么在管理页面上它能正常工作,而在我的应用页面上却不行。
这里有一些小建议,虽然我不知道你的代码具体是怎样的:
- 把 'debug_toolbar.middleware.DebugToolbarMiddleware' 放在你中间件列表的最后一个或者倒数第二个位置(我不太确定它和 flatpagefallback 中间件的配合情况)
- 在 INSTALLED_APPS 列表中,把 'debug-toolbar' 放在最后
- 仔细检查一下工具栏的资源是否加载成功
- 确保所有的工具栏设置都已配置好,比如 (DEBUG_TOOLBAR_CONFIG, INTERNAL_IPS) 等等
错误可能就在这些地方。我知道还有其他与在 flatpages 上显示工具栏相关的问题,所以如果你只是在 flatpages 上检查过,我建议你在其他模块上试试。
调试工具栏需要在返回的HTML中至少有一个结束的 </body>
标签。
你可以通过修改 settings.DEBUG_TOOLBAR_CONFIG['INSERT_BEFORE']
来更改这个标签。
http://django-debug-toolbar.readthedocs.org/en/latest/configuration.html#toolbar-options