我在尝试启动并运行django-debug-toolbar时遇到问题。我已将所有必要的信息添加到INSTALLED_APPS
, MIDDLEWARE_CLASSES
,并且我的 ip 在INTERNAL_IPS
元组中。我已经运行了 setup.py 脚本,一切似乎都很好,因为我没有从 django 或 apache 收到错误。
但是,什么都没有发生——任何页面上都没有工具栏,还有其他人见过这种行为吗?我错过了一些明显的东西吗?
我在尝试启动并运行django-debug-toolbar时遇到问题。我已将所有必要的信息添加到INSTALLED_APPS
, MIDDLEWARE_CLASSES
,并且我的 ip 在INTERNAL_IPS
元组中。我已经运行了 setup.py 脚本,一切似乎都很好,因为我没有从 django 或 apache 收到错误。
但是,什么都没有发生——任何页面上都没有工具栏,还有其他人见过这种行为吗?我错过了一些明显的东西吗?
我有一段时间有同样的问题。
您是否尝试过登录管理面板?如果工具栏显示在那里,但没有显示在您的代码中,则很可能是您缺少模板中的开始和结束标记。默认情况下,django 调试工具栏附加到 BODY 标记,但您可以根据需要更改此行为。看到这个问题:Django Debug Toolbar Only Working for Admin Section
我要么做两件事之一:
import pdb; pdb.set_trace()
在中间件方法中插入_show_toolbar
并查看它在哪个项目上失败,或者在中间件中添加打印语句以查看它在哪个检查上失败,无论您更喜欢哪个。
def _show_toolbar(self, request, response=None):
if not settings.DEBUG or not getattr(settings, 'DEBUG_TOOLBAR', True) or getattr(settings, 'TEST', False):
return False
if request.path.startswith(settings.MEDIA_URL):
return False
if response:
if getattr(response, 'skip_debug_response', False):
return False
if response.status_code >= 300 and response.status_code < 400:
return False
# Allow access if remote ip is in INTERNAL_IPS or
# the user doing the request is logged in as super user.
if (not request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and
(not request.user.is_authenticated() or not request.user.is_superuser)):
return False
return True