Подтвердить что ты не робот

Как можно настроить панель инструментов debugo django для работы только для некоторых пользователей?

Сразу: да, я знаю о INTERNAL_IPS.

Я собираюсь открыть приложение django при интеграции и тестировании работы. Я знаю, что будет проведена отладка и множество модификаций и/или оптимизации, поэтому я бы хотел, чтобы панель инструментов Django Debug. Тем не менее, я бы предпочел не иметь его для всех моих коллег (которые являются "клиентами" ).

Причина, по которой параметр INTERNAL_IP не работает только для меня (btw: у меня есть статический IP-адрес на моем компьютере разработки), я использую Nginx в качестве обратного прокси-сервера и служит с Gunicorn. Из-за обратного прокси, использование inner_ip 127.0.0.1 показывает DjDT на любом компьютере в сети, и использование этого ip является единственным способом, который я смог увидеть сам.

То, что я ищу, - это либо способ получить мой IP-адрес, либо мое имя для входа в систему только для доступа к панели инструментов. Я видел поток с ограниченным доступом к имени пользователя Я не могу найти его...

И как побочный вопрос: кто-нибудь знает, почему панель инструментов не отображается в IE? Для меня это просто отображается как таблицы в нижней части страницы.

4b9b3361

Ответ 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',
}