【问题标题】:Django Debug Toolbar Only Working for Admin SectionDjango 调试工具栏仅适用于管理部分
【发布时间】:2011-04-16 05:59:03
【问题描述】:

嘿, 我已经使用 Django 1.2.1 一段时间了,就在前几天遇到了 Django 调试工具栏。它看起来真的很有用,我真的很想尝试一些东西。

我完全按照自述文件所说的方式安装了。一步步。我将中间件放在最后以防万一,但我使用的是非常标准的中间件(common、session、auth 和 csrf)。但是,它不会出现在我的任何页面上。我试过移动中间件,但效果相同。

好像我安装了一些错误的东西。但是,当我加载 django 的管理部分时,工具栏会弹出。我不确定我做错了什么。我的页面内容会影响工具栏的出现吗?它在 mime text/html 中输出...

无论如何,非常感谢任何帮助。提前致谢。

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

【问题讨论】:

  • 您能否编辑您的问题并向我们展示您的 settings.py 的相关部分?
  • 您可以发布您的模板吗?你有正确的html标签吗?我认为(默认)DDT 位置需要一个结束正文标记。

标签: python django django-debug-toolbar


【解决方案1】:

调试工具栏要求响应 HTML 中至少有一个结束 </body> 标记。

这个标签可以通过改变settings.DEBUG_TOOLBAR_CONFIG['INSERT_BEFORE']来改变

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

【讨论】:

    【解决方案2】:

    在不知道代码的情况下的一些提示:

    • 'debug_toolbar.middleware.DebugToolbarMiddleware' 应该是您的最后一个或倒数第二个中间件条目(不能 100% 确定它如何与 flatpagefallback 中间件一起工作)
    • 'debug-toolbar' 在 INSTALLED_APPS 列表中的最后一个
    • 仔细检查工具栏的资源是否已加载
    • 确保所有工具栏设置都已设置。 (DEBUG_TOOLBAR_​​CONFIG、INTERNAL_IPS)等。

    错误应该在那里。我知道其他与在平面页面上显示工具栏相关的问题,所以如果您只检查平面页面,我建议您在另一个模块上尝试。

    【讨论】:

    • 感谢您的帮助,但我认为这会导致一般错误?无论哪种方式,我已经对您上面提到的所有内容进行了三次检查(我认为您的意思是 INSTALLED_APPS 中的 debug_toolbar)并且没有发现任何错误。我也刚刚发现重定向被工具栏拾取,然后显示出来。它一定是我的 HTML 模板中的一些东西......但是工具栏没有出现在任何地方,我已经检查过我没有以某种方式将它隐藏在我的 HTML 中......
    • 是的,我的意思是“debug_toolbar”并修正了我的回答中的错字。我想为您提供帮助,但我认为我们(我和其他 SO 用户)需要查看您的 settings.py 的相关部分,并且可能需要查看您应用中的演示模板。
    • 这是我的 Settings.py: pastebin.com/Hu8TgANt ,我不想给出我的一些模板(我只是对我的来源感到敏感:P)但如果我的设置没有什么奇怪的话。 py,我想我必须这样做。非常感谢你的帮忙! (注意:显然 不是其中的实际值:P)
    【解决方案3】:

    我在这里遇到了同样的问题,最终到达了这篇文章......无论如何,在我的情况下,我注意到我的一个 js 包含库中有一个 javascript 错误。这打破了 js 解释流程。当我修复 javascript 错误时,django 工具栏工作了。

    这解释了为什么它在管理页面中有效,但在我的应用页面中无效。

    【讨论】:

      【解决方案4】:

      settings.py 中缺少 INTERNAL_IPS 键会影响工具栏的可见性。添加这个可以解决问题:

      INTERNAL_IPS = ('127.0.0.1',)
      

      【讨论】:

      • 我在远程服务器上运行我的开发,并将服务器地址添加到 IP 列表中,但仍然无法正常工作。在中间件的 _show_toolbar 方法中放置一个 assert False 可以让我看到问题出在哪里并识别 IP。
      【解决方案5】:

      我遇到了类似的问题。解决方案是将 div 作为非空 HTML 元素关闭。

      从这里

      <body>
      ...
          <div id="map-canvas"/>
      ...
      </body>
      

      到这里

      <body>
      ...
          <div id="map-canvas"></div>
      ...
      </body>
      

      希望对你有帮助!

      【讨论】:

        【解决方案6】:

        就我而言,我使用 Google Material Design Lite 作为前端框架,

        有样式定义,

        *[hidden]{
            display:none!important;
        }
        

        此样式应用于调试工具栏的元素,导致不显示任何内容。

        一个快速的解决方法是将 MDL 的样式定义(仅适用于本地样式表,而不是托管 cdn)更改为

        *[hidden]{
            display:none;
        }
        

        【讨论】:

          【解决方案7】:

          就我而言,错误非常简单。

          我删除了页脚,它就像一个魅力!

          希望这可以解决其他人的问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-06-10
            • 1970-01-01
            • 2017-10-20
            • 2017-09-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-16
            相关资源
            最近更新 更多