Django 调试工具栏显示在根 URL 中,但不在应用 URL 中

Posted

技术标签:

【中文标题】Django 调试工具栏显示在根 URL 中,但不在应用 URL 中【英文标题】:Django Debug Toolbar shows at root URL, but not in app URL 【发布时间】:2015-12-23 19:48:24 【问题描述】:

我有一个新项目,我正在尝试设置 Django 调试工具栏。首先我尝试了快速设置,它只涉及将'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试工具栏出现了,但它不适用于我的应用程序 urls/views。我现在不应该那样,我的根 URL 没有链接到视图,所以它显示了一个 django 错误页面。

由于快速启动不起作用,我使用了显式设置。我更新了我的设置文件:

DEBUG_TOOLBAR_PATCH_SETTINGS = False

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
)

并更新了我的项目级 urls.py:

if settings.DEBUG: # make sure the toolbar is above ?CKeditor and FeinCMS
    import debug_toolbar
    urlpatterns += patterns('',
        url(r'^__debug__/', include(debug_toolbar.urls)),
    )

但现在它没有出现在任何地方。

在我的应用视图中,我已将% debug % 添加到模板中。模板调试输出似乎表明调试工具栏中间件已加载:

 'debug_toolbar': <module 'debug_toolbar' from '/home/joseph/.virtualenvs/myproject/local/lib/python2.7/site-packages/debug_toolbar/__init__.pyc'>,
 'debug_toolbar.collections': None,
 'debug_toolbar.compat': <module 'debug_toolbar.compat' from '/home/joseph/.virtualenvs/myproject/local/lib/python2.7/site-packages/debug_toolbar/compat.pyc'>,
 'debug_toolbar.django': None,
 'debug_toolbar.importlib': None,
 'debug_toolbar.middleware': <module 'debug_toolbar.middleware' from '/home/joseph/.virtualenvs/myproject/local/lib/python2.7/site-packages/debug_toolbar/middleware.pyc'>,

我不确定为什么这不起作用。我的 django 版本是 1.8,我的调试工具栏版本是 1.3.2。

【问题讨论】:

您确定'django.contrib.staticfiles', 在您的INSTALLED_APPS 设置中吗? 【参考方案1】:

我对这个问题的解决方案是在模板中添加&lt;body&gt;&lt;/body&gt; 标签。

我是从 django-debug-toolbar 网站上的“提示”部分获得的。

只有在项目设置中的 DEBUG = True 时才会显示调试工具栏。它也只会在响应的 mimetype 是 text/html 或 application/xhtml+xml 并包含结束 &lt;/body&gt; 标记时显示。

来源:django-debug-toolbar.readthedocs.io/en/stable/tips.html

如果工具栏在索引页面(或任何其他页面)上有效,但在另一个页面上无效,则可能是缺少正文标签。

【讨论】:

以上是关于Django 调试工具栏显示在根 URL 中,但不在应用 URL 中的主要内容,如果未能解决你的问题,请参考以下文章

Django(十四)课程机构列表页数据展示,Django的modelform,关于urls的重新分发

Django本地调试时模拟服务器使用url方式访问静态文件(不建议使用)

Django 开发调试工具:Django-debug-toolbar

试图在 django 项目的 urls 文件夹中包含 url 模式

Django django-debug-toolbar调试工具配置

Django URL 基于带空格的字符域?