django-debug-toolbar没有显示出来

我看了其他问题,无法弄清楚…

我做了以下安装django-debug-toolbar:

  1. pip安装django-debug-toolbar
  2. 添加到中间件类:
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', ) 

3增加了INTERNAL_IPS:

INTERNAL_IPS =('174.121.34.187',)

4添加了debug_toolbar安装的应用程序

我没有得到任何错误或任何东西,工具栏不显示在任何页面,甚至没有pipe理员。

我甚至添加了debug_toolbar模板的目录到我的TEMPLATE_DIRS

愚蠢的问题,但你没有提到它,所以…什么是DEBUG设置? 它不会加载,除非它是True

如果仍然无法正常工作,请尝试将“127.0.0.1”添加到INTERNAL_IPS中。

UPDATE

这是最后一步的努力,你不应该这样做,但它会清楚地表明,如果只是一些configuration问题或是否有一些更大的问题。

将以下内容添加到settings.py:

 def show_toolbar(request): return True SHOW_TOOLBAR_CALLBACK = show_toolbar 

这将有效地删除debugging工具栏的所有检查,以确定是否应该加载本身; 它将永远只是加载。 只保留testing目的,如果您忘记和启动它,所有访问者也将看到您的debugging工具栏。

有关显式configuration,请参阅此处的官方安装文档。

编辑(2015年6月17日):

显然,核select的语法已经改变了。 现在在它自己的字典中:

 def show_toolbar(request): return True DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK" : show_toolbar, } 

他们的testing使用这本字典。

debugging工具栏需要request.META ['REMOTE_ADDR']中的IP地址在INTERNAL_IPS设置中设置。 在你的观点之一中打印声明,如下所示:

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

然后加载该页面。 确保IP位于settings.py中的INTERNAL_IPS设置中。

通常情况下,我认为你可以很容易地通过查看你的计算机的IP地址来确定地址,但在我的情况下,我正在运行带有端口转发的虚拟盒中的服务器…谁知道发生了什么事情。 尽pipe在VB或我自己的操作系统上,在ifconfig的任何地方都没有看到它,但在REMOTE_ADDR键中出现的IP是激活工具栏的诀窍。

如果一切都很好,也可能是你的模板没有明确的closures<body>标签,

注:如果响应的MIMEtypes是text / html或application / xhtml + xml并包含结束标记,则debugging工具栏将仅显示自身。

当前的稳定版本0.11.0要求显示工具栏的以下内容:

设置文件:

  1. DEBUG = True
  2. INTERNAL_IPS包括您的浏览器IP地址,而不是服务器地址。 如果浏览本地应该是INTERNAL_IPS = ('127.0.0.1',) 。 如果远程浏览只需指定您的公共地址 。
  3. 要安装的debug_toolbar应用即INSTALLED_APPS = (..., 'debug_toolbar',)
  4. 要添加的debugging工具栏中间件类即MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...) 。 它应尽早放在清单中。

模板文件:

  1. 必须是text/htmltypes
  2. 必须有一个结束</html>标记

静态文件:

如果您正在提供静态内容,请确保您通过执行以下操作来收集css,js和html:

 ./manage.py collectstatic 


请注意即将发布的django-debug-toolbar版本

较新的开发版本为设置点2,3和4添加了默认设置,这使得生活变得简单一些,但是,与任何开发版本一样,它也有错误。 我发现git的最新版本在运行nginx / uwsgi时导致错误的configuration错误。

无论哪种方式,如果你想从github运行安装最新版本:

 pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar 

您也可以通过执行克隆特定的提交:

 pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git@ba5af8f6fe7836eef0a0c85dd1e6d7418bc87f75#egg=django_debug_toolbar 

我有工具栏工作完美。 有了这个configuration:

  1. DEBUG = True
  2. INTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)
  3. DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}
  4. 中间件是MIDDLEWARE_CLASSES的第一个元素:
 MIDDLEWARE_CLASSES = ( 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ) 

我希望它有帮助

在Windows上添加10.0.2.2到INTERNAL_IPS,它在内部使用

INTERNAL_IPS =('10 .0.2.2',)

这应该工作。

我尝试了一切,从设置DEBUG = True ,设置INTERNAL_IPS到我的客户端的IP地址,甚至手动configurationDjangodebugging工具栏(注意,最近的版本自动完成所有configuration,比如添加中间件和URL)。 在远程开发服务器上没有任何工作(尽pipe它在本地工作)。 唯一有效的工作是configuration工具栏,如下所示:

 DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK" : lambda request: True, } 

这取代了决定是否应显示工具栏的默认方法,并始终返回true。

我有同样的问题,并最终解决一些谷歌search后。

在INTERNAL_IPS中,您需要拥有客户端的 IP地址。

另一件可能导致工具栏保持隐藏状态的原因是它找不到所需的静态文件。 debug_toolbar模板使用{{STATIC_URL}}模板标签,因此请确保您的静态文件中有一个名为“debugging工具栏”的文件夹。

collectstaticpipe理命令应该在大多数安装上处理这个问题。

我尝试从pydanny的cookiecutter-Django的configuration,它为我工作:

 # django-debug-toolbar MIDDLEWARE_CLASSES = Common.MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',) INSTALLED_APPS += ('debug_toolbar',) INTERNAL_IPS = ('127.0.0.1',) DEBUG_TOOLBAR_CONFIG = { 'DISABLE_PANELS': [ 'debug_toolbar.panels.redirects.RedirectsPanel', ], 'SHOW_TEMPLATE_CONTEXT': True, } # end django-debug-toolbar 

我只是通过添加'debug_toolbar.apps.DebugToolbarConfig'而不是'debug_toolbar.apps.DebugToolbarConfig'来修改它,正如我正在使用Django 1.7所述,在官方的django-debug-toolbar文档中提到。

除了以前的答案:

如果工具栏不显示,但它加载在HTML(检查您的网站在浏览器中的HTML,向下滚动)

问题可能是debugging工具栏静态文件没有find(您也可以在您的网站的访问日志中看到这个,然后,例如/static/debug_toolbar/js/toolbar.js 404错误)

它可以通过以下方式修复(例如nginx和apache):

nginxconfiguration:

 location ~* ^/static/debug_toolbar/.+.(ico|css|js)$ { root [path to your python site-packages here]/site-packages/debug_toolbar; } 

apacheconfiguration:

 Alias /static/debug_toolbar [path to your python site-packages here]/site-packages/debug_toolbar/static/debug_toolbar 

要么:

 manage.py collectstatic 

更多关于collectstatic在这里: https : //docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic

或者手动将debug_toolbar静态文件的debug_toolbar文件夹移动到您设置的静态文件文件夹中

django 1.8.5:

我不得不将以下内容添加到项目url.py文件中以获得debugging工具栏的显示。 之后显示debugging工具栏。

  from django.conf.urls import include from django.conf.urls import patterns from django.conf import settings if settings.DEBUG: import debug_toolbar urlpatterns += patterns('', url(r'^__debug__/', include(debug_toolbar.urls)), ) 

django 1.10:及更高版本:

 from django.conf.urls import include, url from django.conf.urls import patterns from django.conf import settings if settings.DEBUG: import debug_toolbar urlpatterns =[ url(r'^__debug__/', include(debug_toolbar.urls)), ] + urlpatterns 

另外不要忘记把debug_toolbar包含到你的中间件中。 debugging工具栏主要在中间件中实现。 在您的设置模块中启用它如下:(Django的新版本)


 MIDDLEWARE = [ # ... 'debug_toolbar.middleware.DebugToolbarMiddleware', # 

旧式中间件:(需要在中间件中有_CLASSES keywork)

 MIDDLEWARE_CLASSES = [ # ... 'debug_toolbar.middleware.DebugToolbarMiddleware', # ... ] 

对于这个特定的作者来说,情况并非如此,但是我只是一直苦于Debug Toolbar没有显示出来,在做了他们指出的所有事情之后,我发现这是MIDDLEWARE命令的问题。 因此,尽早将中间件放在列表中可能会起作用。 我是第一个:

MIDDLEWARE_CLASSES = ( 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'dynpages.middleware.DynpageFallbackMiddleware', 'utils.middleware.UserThread', )

在我的情况下,这是另一个在这里还没有提到的问题:我的GZipMiddleware在我的中间件列表中。

由于debugging工具栏的自动configuration会将debugging工具栏的中间件置于顶部,因此只能“看到”压缩的HTML,无法添加工具栏。

我在我的开发设置中删除了GZipMiddleware。 手动设置debugging工具栏的configuration并 GZip 之后放置中间件也应该可以工作。

在我的情况下,我只需要删除python编译的文件( *.pyc

你必须确保模板中有一个结束标记。

我的问题是,我的模板中没有常规的HTML标签,我只是以纯文本显示内容。 我通过inheritancebase.html中的每个html文件来解决这个问题。

对我来说,这与在地址栏中input127.0.0.1:8000一样简单,而不是显式地与INTERNAL_IPS匹配的localhost:8000

我遇到了同样的问题,我通过查看Apache的错误日志来解决这个问题。 我得到了与mod_wsgi在mac os x上运行的Apache debug_toolbar的tamplete文件夹没有被加载

日志示例:

 ==> /private/var/log/apache2/dummy-host2.example.com-error_log <== [Sun Apr 27 23:23:48 2014] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/rblreport/rbl/static/debug_toolbar, referer: http://127.0.0.1/ ==> /private/var/log/apache2/dummy-host2.example.com-access_log <== 127.0.0.1 - - [27/Apr/2014:23:23:48 -0300] "GET /static/debug_toolbar/css/toolbar.css HTTP/1.1" 404 234 "http://127.0.0.1/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0" 

我只是将这一行添加到我的VirtualHost文件中:

 Alias /static/debug_toolbar /Library/Python/2.7/site-packages/debug_toolbar/static/debug_toolbar 
  • 当然,你必须改变你的Pythonpath

我有使用stream浪汉同样的问题。 我通过在INTERNAL_IPS中添加::ffff:192.168.33.1来解决这个问题。

 INTERNAL_IPS = ( '::ffff:192.168.33.1', ) 

记住192.168.33.10是我在Vagrantfile的私人networking中的IP。

我有这个问题,不得不从源安装debugging工具栏。

如果你使用PureCSS和其他的CSS框架,1.4版本存在隐藏的问题。

这是修复的承诺。

该文档解释了如何从源代码安装。

对于任何正在使用Pycharm 5的人来说 – 在某些版本中,模板debugging不起作用。 在5.0.4中修复,受影响的vesions – 5.0.1,5.0.2检出问题

花很多时间去找出来。 也许会帮助别人

一个愚蠢的事情让我..如果你使用Apache的WSGI,请记住触摸.wsgi文件强制你的代码重新编译。 只是浪费我20分钟的时间来debugging愚蠢的错误:(