如何将django调试工具栏设置为仅适用于某些用户?

j_s*_*syk 30 django django-debug-toolbar

马上:是的我知道INTERNAL_IPS.

我即将在工作集成和测试中打开我的django应用程序.我知道会有调试和大量的修改和/或优化,所以我很想拥有Django调试工具栏.但是,我宁愿不为我的所有同事(他们是'客户')提供帮助.

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

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

作为一个侧面问题 - 任何人都知道为什么工具栏不能在IE中呈现?对我而言,它只是在页面底部显示为表格.

Dou*_*g-W 44

尝试:

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
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*ino 9

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

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
}
Run Code Online (Sandbox Code Playgroud)

  • 这就是`edit`功能的用途.我冒昧地把你的评论纳入了公认的答案. (2认同)