【发布时间】:2012-03-05 12:30:55
【问题描述】:
当我不知道 IP 地址时,如何在 Heroku 中使用 Django 调试工具栏:
INTERNAL_IPS = ('127.0.0.1', )
总是失败。
【问题讨论】:
当我不知道 IP 地址时,如何在 Heroku 中使用 Django 调试工具栏:
INTERNAL_IPS = ('127.0.0.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()
【讨论】:
显示调试工具栏不依赖于 INTERNAL_IPS。这只是确保您只向实际开发人员展示它的默认方式。正如文档所解释的,您可以为此提供自己的逻辑,方法是定义一个函数设置SHOW_TOOLBAR_CALLBACK 指向该函数。因此,例如,您可以检查某个用户名,或者简单地返回 True 以确保它始终显示。
【讨论】:
详细说明 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',
}
【讨论】:
您可以将{{ request.META.REMOTE_ADDR }} 放入模板中,然后在INTERNAL_IPS 中查看DJDT 想要查看的IP。 Documentation about request.META.
【讨论】: