【问题标题】:Django Debug Toolbar Install ProblemsDjango 调试工具栏安装问题
【发布时间】:2011-02-17 21:23:58
【问题描述】:

我在尝试启动和运行 django-debug-toolbar 时遇到问题。我已将所有必要的信息添加到INSTALLED_APPSMIDDLEWARE_CLASSES,并且我的 ip 在INTERNAL_IPS 元组中。我已经运行了 setup.py 脚本,一切似乎都加载正常,因为我没有从 django 或 apache 收到错误。

但是,什么都没有发生 - 任何页面上都没有工具栏,有其他人见过这种行为吗?我错过了什么明显的东西吗?

【问题讨论】:

  • 调试模式(DEBUG=True)是否开启?
  • 对不起,我应该包括在内,DEBUG 也已启用。

标签: python django django-debug-toolbar


【解决方案1】:

我有一段时间遇到同样的问题。

您是否尝试过登录管理面板?如果工具栏显示在那里,但没有显示在您的代码中,则很可能是您缺少模板中的开始和结束标记。默认情况下,django 调试工具栏附加到 BODY 标记,但您可以根据需要更改此行为。看到这个问题:Django Debug Toolbar Only Working for Admin Section

【讨论】:

  • 卫生署!这绝对是问题所在,我已经放弃了让它工作的希望。谢谢一百万。
【解决方案2】:

我会做两件事之一:

在中间件 _show_toolbar 方法中插入 import pdb; pdb.set_trace() 并查看它在哪个项目上失败,或者在中间件中添加打印语句以查看它在哪个检查上失败,无论您更喜欢哪个。

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

【讨论】:

  • DEBUG 是真的,我使用的是 apache 而不是开发服务器。为了排除任何 IP 问题,我现在以管理员身份登录,但仍然一无所获。我不确定你想用这个代码示例说什么。
  • 我只是建议在中间件中放置日志语句以确定哪个测试未能帮助缩小原因。
  • 我不明白这个答案实际上是如何回答这个问题的。这是一种调试方式,但如果你连这部分都没有怎么办?实际的配置错误是什么? [我有完全相同的症状的问题]
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 2017-10-20
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
相关资源
最近更新 更多