Как мне увидеть панель инструментов отладки Django?

У меня есть веб-приложение Django. Я установил промежуточное ПО и модуль debug_toolbar. Однако в моих веб-приложениях нет панели инструментов отладки.

Как я на самом деле вижу панель инструментов отладки? Есть ли что-то еще, что мне нужно сделать? Нужно ли мне использовать определенный шаблон для моего веб-приложения? Я выполнил все шаги в README, но этого недостаточно - кажется, есть какая-то другая зависимость или что-то еще, что мне не хватает.

Кроме того, при просмотре набора шаблонов URL для моего веб-приложения префикс debug не найден среди распознанных шаблонов. Я поместил журнал urls.py в debug_toolbar, чтобы убедиться, что модули загружаются активированным приложением debug_toolbar, и это так.

Это меня полностью озадачило, и я не могу найти ни в Google, ни в README, что делать, чтобы это действительно появилось, или каковы требования, поэтому любой указатель, который вы можете предоставить, будет отличным!

Изменить: Оказывается, я тестировал это с помощью SSH-туннеля от машины, на которой запущен браузер, до машины, на которой запущен Django / Apache. В этом случае IP-адрес удаленной машины был не таким, как я думал, поэтому список «хороших» IP-адресов не содержал очевидной удаленной машины браузера. Исправление устранило проблему!


person Jon Watte    schedule 17.06.2011    source источник
comment
Есть ли на вашей html-странице тег ‹body› ‹/body›? Также вам не нужно помещать что-то в urls.py для панели инструментов отладки. UPD. Вы видели исходный код своей страницы?   -  person tony    schedule 17.06.2011


Ответы (1)


  1. Насколько я знаю, ваша HTML-страница должна содержать закрытый тег тела, метатег с content="text/html".

  2. Я предпочитаю способ, когда все настройки панели инструментов отладки отделены от основных настроек. Так что попробуйте поставить в конец settings.py что-нибудь вроде

    #debug_toolbar settings
    if DEBUG:
        INTERNAL_IPS = ('127.0.0.1',)
        MIDDLEWARE_CLASSES += (
            'debug_toolbar.middleware.DebugToolbarMiddleware',
        )
    
        INSTALLED_APPS += (
            'debug_toolbar',
        )
    
        DEBUG_TOOLBAR_PANELS = [
            'debug_toolbar.panels.versions.VersionsPanel',
            'debug_toolbar.panels.timer.TimerPanel',
            'debug_toolbar.panels.settings.SettingsPanel',
            'debug_toolbar.panels.headers.HeadersPanel',
            'debug_toolbar.panels.request.RequestPanel',
            'debug_toolbar.panels.sql.SQLPanel',
            'debug_toolbar.panels.staticfiles.StaticFilesPanel',
            'debug_toolbar.panels.templates.TemplatesPanel',
            'debug_toolbar.panels.cache.CachePanel',
            'debug_toolbar.panels.signals.SignalsPanel',
            'debug_toolbar.panels.logging.LoggingPanel',
            'debug_toolbar.panels.redirects.RedirectsPanel',
        ]
    
        DEBUG_TOOLBAR_CONFIG = {
            'INTERCEPT_REDIRECTS': False,
        }
    

(Примечание для редактирования: lapis обновил конфигурации выше, чтобы они соответствовали именам, используемым в текущей (на момент этого обновления, 1.3.2) версии панели инструментов Django Debug Toolbar. Per http://django-debug-toolbar.readthedocs.org/en/0.10.0/panels.html, исходные версии (которые использовали, например, debug_toolbar.panels.sql.SQLDebugPanel vs debug_toolbar.panels.sql.SQLPanel, как в 1.3.2) были правильными, когда на этот вопрос был дан исходный ответ.)

(примечание: после Django 1.10 MIDDLEWARE_CLASSES должно быть MIDDLEWARE.)

person tony    schedule 17.06.2011
comment
Спасибо! Это хорошо знать. Оказалось, что моя конкретная проблема была другой, но это тоже полезно! - person Jon Watte; 18.06.2011
comment
@ Джон, в чем была твоя конкретная проблема? У кого-то может быть такая же проблема, и ему было бы полезно быстро понять, что проверить. - person Jonathan Hartley; 10.09.2012
comment
Моя настоящая проблема показана в правке в конце сообщения: Изменить: Оказывается, я тестировал это с помощью SSH-туннеля от машины, на которой запущен браузер, до машины, на которой запущен Django / Apache. В этом случае IP-адрес удаленной машины был не таким, как я думал, поэтому список хороших IP-адресов не содержал очевидной удаленной машины браузера. Исправление устранило проблему! - person Jon Watte; 11.09.2012
comment
Добавление промежуточного программного обеспечения панели инструментов отладки в конец списка может вызвать некоторые проблемы. - person hannson; 19.03.2013
comment
Нашел этот пост и оставил комментарий на основе комментария @JonWatte на основе решения здесь! Оглядываясь назад, очевидно, но если вы запускаете Django в контейнере Docker (или другом), вам нужно добавить IP-адрес контейнера как INTERNAL_IP. Вы можете проверить контейнер или бросить print(request.META['REMOTE_ADDR']) в представление и увидеть вывод консоли, чтобы узнать IP-адрес вашего контейнера. - person Matt Pavelle; 15.09.2016
comment
это помогло мне. Спасибо - person Gary; 20.01.2017