31

马上:是的,我知道 INTERNAL_IPS。

我即将在工作集成和测试中打开我的 django 应用程序。我知道会有调试和大量修改和/或优化,所以我很想拥有Django Debug Toolbar。但是,我不希望我的所有同事(他们是“客户”)都这样做。

INTERNAL_IP 设置不适用于我的原因(顺便说一句:我的开发计算机上有一个静态 IP)是我使用Nginx作为反向代理并与Gunicorn一起使用。由于反向代理,使用 127.0.0.1 的 internal_ip 向网络上的任何计算机显示 DjDT,并且使用该 ip 是我自己能够看到它的唯一方法。

我正在寻找的是一种让我的 IP 或我的登录名成为唯一可以访问工具栏的方法。我曾经看到一个关于用户名限制访问的帖子,但我找不到它......

作为一个附带问题 - 任何人都知道为什么工具栏不在 IE 中呈现?对我来说,它只是在页面底部显示为表格。

4

3 回答 3

47

尝试:

def show_toolbar(request):
    return not request.is_ajax() and request.user and request.user.username == "yourusername"

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
    # Rest of config
}
于 2011-07-01T14:31:21.823 回答
9

接受的答案不再正确。较新版本的工具栏需要SHOW_TOOLBAR_CALLBACK键的值是具有函数完整导入路径的字符串。因此,如果您在settings.py文件中定义回调函数,则必须添加:

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
}
于 2014-03-14T00:01:44.497 回答
2

如果面对No .rsplit() Error。新解决方案:

因为SHOW_TOOLBAR_CALLBACK现在是点字符串路径并且不支持可调用。

编辑你的settings.py

def custom_show_toolbar(request):
     return True  # Always show toolbar, for example purposes only.

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'your_project_name.settings.custom_show_toolbar',
}
于 2014-04-22T10:33:47.247 回答