Heroku中的Django调试工具栏

时间:2012-03-05 12:30:55

标签: django heroku

当我不知道IP地址时如何在Heroku中使用Django Debug Toolbar这样:

INTERNAL_IPS = ('127.0.0.1', )

总是失败。

4 个答案:

答案 0 :(得分:4)

显示调试工具栏与INTERNAL_IPS无关。这只是确保您只向实际开发人员展示它的默认方式。正如文档所解释的那样,您可以通过将函数SHOW_TOOLBAR_CALLBACK定义为指向该函数的函数来为此提供自己的逻辑。因此,例如,您可以检查某个用户名,或者只返回True以确保它始终显示。

答案 1 :(得分:4)

我的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 :(得分:1)

阐述丹尼尔罗斯曼的答案,以下是如何为员工用户展示工具栏: 将函数的虚线路径分配给SHOW_TOOLBAR_​​CALLBACK

settings.py:

def show_toolbar(request):
    return request.user.is_staff

DEBUG_TOOLBAR_CONFIG = {
    # ...
    'SHOW_TOOLBAR_CALLBACK': 'project.settings.show_toolbar',
}

答案 3 :(得分:0)

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