Как можно настроить панель инструментов debugo django для работы только для некоторых пользователей?
Сразу: да, я знаю о INTERNAL_IPS.
Я собираюсь открыть приложение django при интеграции и тестировании работы. Я знаю, что будет проведена отладка и множество модификаций и/или оптимизации, поэтому я бы хотел, чтобы панель инструментов Django Debug. Тем не менее, я бы предпочел не иметь его для всех моих коллег (которые являются "клиентами" ).
Причина, по которой параметр INTERNAL_IP не работает только для меня (btw: у меня есть статический IP-адрес на моем компьютере разработки), я использую Nginx в качестве обратного прокси-сервера и служит с Gunicorn. Из-за обратного прокси, использование inner_ip 127.0.0.1 показывает DjDT на любом компьютере в сети, и использование этого ip является единственным способом, который я смог увидеть сам.
То, что я ищу, - это либо способ получить мой IP-адрес, либо мое имя для входа в систему только для доступа к панели инструментов. Я видел поток с ограниченным доступом к имени пользователя Я не могу найти его...
И как побочный вопрос: кто-нибудь знает, почему панель инструментов не отображается в IE? Для меня это просто отображается как таблицы в нижней части страницы.
Ответы
Ответ 1
Try:
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
}
Ответ 2
Принятый ответ больше не верен. Для более поздних версий панели инструментов значение ключа SHOW_TOOLBAR_CALLBACK
должно быть строкой с полным пути импорта функции. Поэтому, если вы определяете свою функцию обратного вызова в вашем файле settings.py
, вам нужно добавить:
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': 'projectname.settings.show_toolbar',
}
Ответ 3
Если вы столкнулись с 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',
}