【问题标题】:Django Debug Toolbar in HerokuHeroku 中的 Django 调试工具栏
【发布时间】:2012-03-05 12:30:55
【问题描述】:

当我不知道 IP 地址时,如何在 Heroku 中使用 Django 调试工具栏:

INTERNAL_IPS = ('127.0.0.1', )

总是失败。

【问题讨论】:

    标签: django heroku


    【解决方案1】:

    我的 settings.py 中有以下内容,它在本地和部署到 Heroku 时都有效:

    MIDDLEWARE_CLASSES = (
      ...
      'debug_toolbar.middleware.DebugToolbarMiddleware'
     ...
    )
    
    if DEBUG is True:
       INSTALLED_APPS += (
           'debug_toolbar',
           )
    
    if DEBUG is True:
      class AllIPS(list):
          def __contains__(self, item):
               return True
      INTERNAL_IPS = AllIPS()
    

    【讨论】:

      【解决方案2】:

      显示调试工具栏不依赖于 INTERNAL_IPS。这只是确保您只向实际开发人员展示它的默认方式。正如文档所解释的,您可以为此提供自己的逻辑,方法是定义一个函数设置SHOW_TOOLBAR_CALLBACK 指向该函数。因此,例如,您可以检查某个用户名,或者简单地返回 True 以确保它始终显示。

      【讨论】:

        【解决方案3】:

        详细说明 Daniel Roseman 的回答,以下是如何为员工用户显示工具栏: 将函数的虚线路径分配给 SHOW_TOOLBAR_​​CALLBACK

        settings.py:

        def show_toolbar(request):
            return request.user.is_staff
        
        DEBUG_TOOLBAR_CONFIG = {
            # ...
            'SHOW_TOOLBAR_CALLBACK': 'project.settings.show_toolbar',
        }
        

        【讨论】:

        • 当我遇到问题时,我做了类似的事情。
        【解决方案4】:

        您可以将{{ request.META.REMOTE_ADDR }} 放入模板中,然后在INTERNAL_IPS 中查看DJDT 想要查看的IP。 Documentation about request.META.

        【讨论】:

        • 这不适用于 heroku 管道 - 在我的情况下 - 每次我部署时 - IP 都发生了变化,但很好的提示。
        • 您的生产主机上真的需要这个吗?
        • 不是部署IP,是你想要的IP!
        • 我知道,我尝试了自己的第一个,然后尝试了 heroku 服务器(一直在变化) - 没有一个有效 - 当我回答 TAH 时 - 一切都很好,我知道工具栏不应该打开生产 - 但是这个网站还没有上线,我找不到为什么即使调试本地主机,网站加载速度也很慢,当我实现该工具栏正在生产时,它立即帮助我查明问题,现在它已修复并且工具栏已从生产中消失 :) 谢谢您的帮助
        猜你喜欢
        • 2017-10-20
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-16
        • 2019-06-05
        • 2010-11-05
        • 2022-01-11
        相关资源
        最近更新 更多