【问题标题】:Cannot get django-debug-toolbar to appear无法让 django-debug-toolbar 出现
【发布时间】:2015-05-13 02:27:07
【问题描述】:

无论我做什么,我都无法让 django-debug-toolbar 出现。我已经尝试了every answer on this question 中建议的所有内容。

  • 我的设置中有DEBUG=True
  • 我在INSTALLED_APPS 中有django.contrib.staticfilesdebug_toolbar
  • 我有'debug_toolbar.middleware.DebugToolbarMiddleware' 高在MIDDLEWARE_CLASSES
  • 我的设置中有INTERNAL_IPS = ()
  • 我尝试在视图中添加print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR']),它打印出IP Address for debug-toolbar: 127.0.0.1
  • 我的模板中有一个结束 </body></html>
  • 我已经在我的 virtualenv 中运行 pip install django-debug-toolbar,没有任何问题
  • 我已经运行了python manage.py collectstatic,我的静态文件中有一个debug_toolbar 目录

当我运行应用程序时,我在控制台中没有看到任何包含 django_debug_toolbar 的 URL 的请求,所以我怀疑是应用程序没有被加载。

我也没有在开发者控制台中看到任何失败的请求。

我已阅读 django-debug-toolbar installation docs 并没有想法。

有人对调试有什么建议吗?我正在运行 OSX 和 Django 1.7。奇怪的是调试工具栏看起来很好——我想我做了一些调整,导致它消失了,但我不知道是什么。

更新:我什至尝试在我的设置文件中添加它,这应该会强制工具栏出现:

def show_toolbar(request):
    return True
SHOW_TOOLBAR_CALLBACK = show_toolbar

但这无济于事。

我还尝试在我的视图中抛出一个故意的异常,以便我可以检查 DEBUG 是否打开并且所有设置都如上。它们是,但仍然没有工具栏!

更新 2:当我设置 INTERNAL_IPS=('127.0.0.1',) 时,我开始在控制台中看到调试工具栏请求,但页面上没有工具栏。

以下 HTML 出现在我的页面中 - 所以工具栏在那里,但它不可见,因为它上面设置了 display=none

【问题讨论】:

  • 所以,有趣的是,如果我在设置中设置 INTERNAL_IPS = ('127.0.0.1',),我开始在控制台和浏览器的 DevTools 中看到对 debug_toolbar 文件的请求。但是,工具栏本身仍然是不可见的。很奇怪。
  • 您的浏览器控制台中是否存在任何类型的 JS 冲突?也可能是 CSS 冲突。
  • 使用“检查元素”,我可以看到工具栏在呈现的 HTML 中,但它的所有内容面板都已明确设置为display: none。为什么会这样?
  • 您是否从设置中删除了回调函数?
  • @rnevius 是的,但它是否存在似乎并没有什么区别,是 INTERNAL_IPS 造成了不同。

标签: django django-debug-toolbar


【解决方案1】:

我遇到了同样的问题,但在dvl's comment on this page 之后设法解决了它。以下是修复的摘要:

在settings.py中

if DEBUG:
    MIDDLEWARE += (
        'debug_toolbar.middleware.DebugToolbarMiddleware',
    )
    INSTALLED_APPS += (
        'debug_toolbar',
    )
    INTERNAL_IPS = ('127.0.0.1', )
    DEBUG_TOOLBAR_CONFIG = {
        'INTERCEPT_REDIRECTS': False,
    }

在项目 urls.py 中,将这个 url 模式添加到末尾:

from django.conf import settings

if settings.DEBUG:
    import debug_toolbar

    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ]

【讨论】:

    【解决方案2】:

    为像我这样的新闻用户在虚拟或远程机器上开发时的一些信息

    在 views.py 文件中添加这个 ligne

    print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR'])
    

    views被调用时,可以在shell中看到客户端IP

    您必须将此 IP 添加到 settings.py 文件 INTERNAL_IPS = ('IP')

    【讨论】:

    • 谢谢!非常感谢。
    【解决方案3】:

    所有带有display: none; 的 div 实际上都表现正常。在您实际单击工具栏中的它们之前,它们不会更改为 display: block;

    用于切换工具栏的按钮是带有id="djDebugToolbarHandle" 的div。正如您在控制台中看到的,此按钮的top 位置为2310px。这意味着它正在渲染,但它离页面很远。

    尝试在控制台中输入以下内容以重置其位置:

    document.getElementById('djDebugToolbarHandle').style.top="30px";
    

    【讨论】:

    • 哇!这样可行!太感谢了!我现在将四处挖掘并尝试找出为什么重置该样式...
    • 是的,这很奇怪。很高兴我的解决方案对您有用。
    • django-debug-toolbar 中有一些代码明确设置了top 值:ob/7a82ac3b78099de4bd00fa4503cca9a699a80299/debug_toolbar/static/debug_toolbar/js/toolbar.js#L134-L152 我想知道它是不是有这个问题吗?
    • 2130px 的值是否重要?你的 CSS 或 JS 中的任何地方是否在你的应用程序的其他地方有这个?
    • 我在其他任何地方都没有这个价值。查看源代码,top 值应该在用户滚动时设置,尽管我没有滚动。我想知道是否与浏览器插件进行了一些令人讨厌的交互?
    【解决方案4】:

    我遇到了同样的问题。在我的 settings.py 中更改查找器模块对我有用:

    STATICFILES_FINDERS = (
        #'django.contrib.staticfiles.finders.FileSystemFinder', #THIS BREAKES debug_toolbar
        'django.contrib.staticfiles.finders.AppDirectoriesFinder', #THIS WORKS
    )
    

    确保在此更改后清除浏览器缓存。

    但在此之后,由于this issue,Django 在collectstatic 期间给了我错误消息。我解决了在我的 settings.py 中创建两个配置:

    class Production(Base):
       DEBUG = False
       STATICFILES_FINDERS = (
          'django.contrib.staticfiles.finders.FileSystemFinder',
       )
    
    class Develop(Base):
       DEBUG = True
       STATICFILES_FINDERS = (
          'django.contrib.staticfiles.finders.AppDirectoriesFinder',
       )
    

    希望对你有帮助。

    【讨论】:

    • 我浪费了很多时间。有很多关于另一种配置的信息,但只有你的建议对我有用。谢谢!
    【解决方案5】:

    django-debug-toolbar 可能出现但不能正确显示的一个原因(项目卡在“正在加载”中)是如果 manage.py collectstatic 尚未运行。只是想我会在这里发布它以防它对某人有所帮助。

    【讨论】:

      【解决方案6】:

      我对@9​​87654321@也有同样的问题

      所有标签都有 djdt-hidden 和隐藏类

      <div id="djDebug" class="djdt-hidden" dir="ltr" data-default-show="true">

      我使用pycharmGoogleChrome

      仅使用FireFox 并已修复

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-18
        • 2016-04-08
        • 2013-12-07
        • 2021-07-15
        • 2022-08-13
        • 2015-03-22
        • 2011-08-05
        • 2013-01-15
        相关资源
        最近更新 更多