33

我有一个 Django 网络应用程序。我已经安装了 debug_toolbar 中间件和模块。但是,我的 webapps 没有调试工具栏拉出。

我如何真正看到调试工具栏?我还需要做些什么吗?我需要为我的 webapp 使用特定的模板吗?我已经按照自述文件中的所有步骤进行操作,但这还不够——似乎还有其他一些依赖关系,或者我缺少的其他东西。

此外,在查看我的 web 应用程序的 URL 模式集时,在识别的模式中找不到调试前缀。我在 debug_toolbar 中的 urls.py 中添加了一个日志,以确保激活的 debug_toolbar 应用程序正在加载模块,并且确实如此。

这让我完全迷惑了,我找不到谷歌或自述文件来说明如何做才能真正显示出来,或者要求是什么,所以你可以提供的任何指针都会很棒!

编辑:事实证明,我正在使用从运行浏览器的机器到运行 Django/Apache 的机器的 SSH 隧道进行测试。在这种情况下,实际看到的远程机器的 IP 地址不是我想象的那样,所以“好”IP 列表不包含浏览器的明显远程机器。解决这个问题就解决了!

4

1 回答 1

52
  1. 据我所知,您的 HTML 页面必须包含封闭的正文标记、带有content="text/html".

  2. 我更喜欢所有调试工具栏的设置与主要设置分开的方式。所以尝试在 settings.py 的末尾添加类似

    #debug_toolbar settings
    if DEBUG:
        INTERNAL_IPS = ('127.0.0.1',)
        MIDDLEWARE_CLASSES += (
            'debug_toolbar.middleware.DebugToolbarMiddleware',
        )
    
        INSTALLED_APPS += (
            'debug_toolbar',
        )
    
        DEBUG_TOOLBAR_PANELS = [
            'debug_toolbar.panels.versions.VersionsPanel',
            'debug_toolbar.panels.timer.TimerPanel',
            'debug_toolbar.panels.settings.SettingsPanel',
            'debug_toolbar.panels.headers.HeadersPanel',
            'debug_toolbar.panels.request.RequestPanel',
            'debug_toolbar.panels.sql.SQLPanel',
            'debug_toolbar.panels.staticfiles.StaticFilesPanel',
            'debug_toolbar.panels.templates.TemplatesPanel',
            'debug_toolbar.panels.cache.CachePanel',
            'debug_toolbar.panels.signals.SignalsPanel',
            'debug_toolbar.panels.logging.LoggingPanel',
            'debug_toolbar.panels.redirects.RedirectsPanel',
        ]
    
        DEBUG_TOOLBAR_CONFIG = {
            'INTERCEPT_REDIRECTS': False,
        }
    

(编辑说明:lapis 更新了上面的配置以匹配当前(在此更新时,1.3.2)版本的 Django 调试工具栏使用的名称。根据http://django-debug-toolbar.readthedocs.org /en/0.10.0/panels.html,原始版本(使用例如 debug_toolbar.panels.sql.SQLDebugPanel 与 debug_toolbar.panels.sql.SQLPanel 在 1.3.2 中)是正确的,当这个问题被原始回答时。)

(注意:在 Django 1.10 之后,MIDDLEWARE_CLASSES应该是MIDDLEWARE.)

于 2011-06-17T19:00:57.610 回答