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】:
我对这个问题的解决方案是在模板中添加<body></body>
标签。
我是从 django-debug-toolbar 网站上的“提示”部分获得的。
只有在项目设置中的 DEBUG = True 时才会显示调试工具栏。它也只会在响应的 mimetype 是 text/html 或 application/xhtml+xml 并包含结束
</body>
标记时显示。
来源: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 模式