Django Debug Toolbar работает только для административной секции

Привет, я использую Django 1.2.1 уже некоторое время и только что наткнулся на Django Debug Toolbar. Это выглядит действительно полезным, и я действительно хочу попробовать кое-что.

Я установил именно так, как сказал Readme. Шаг за шагом. Я ставлю промежуточное ПО в конце на тот случай, если что-то запутается, но я использую вполне стандартное промежуточное ПО (common, session, auth и csrf). Тем не менее, он не будет отображаться ни на одной из моих страниц. Я пытался переместить промежуточное программное обеспечение, но с тем же эффектом.

Кажется, что я установил что-то не так. Но когда я загружаю административную часть django, панель инструментов появляется. Я не уверен, что я делаю неправильно. Может ли содержимое моих страниц повлиять на появление панели инструментов? Это выводит в MIME текст /HTML...

Во всяком случае, любая помощь очень ценится. Заранее спасибо.

Вот мой Settings.py: pastebin.com/Hu8TgANt

8 ответов

Решение

Панель инструментов отладки требует, чтобы в HTML-ответе был хотя бы закрывающий тег .

Этот тег можно изменить, изменив settings.DEBUG_TOOLBAR_CONFIG['INSERT_BEFORE']

http://django-debug-toolbar.readthedocs.org/en/latest/configuration.html

Несколько советов, не зная вашего кода:

  • 'debug_toolbar.middleware.DebugToolbarMiddleware' должен быть вашей последней или второй или последней записью промежуточного программного обеспечения (не уверен на 100%, как это работает с промежуточным программным обеспечением возврата плоских страниц)
  • 'debug-toolbar' как последний в списке INSTALLED_APPS
  • Дважды проверьте, загружены ли активы панели инструментов
  • Убедитесь, что все настройки панели инструментов установлены. (DEBUG_TOOLBAR_CONFIG, INTERNAL_IPS) и т. Д.

Ошибка должна быть что-то там. Я знаю о других проблемах, связанных с отображением панели инструментов на плоских страницах, поэтому, если вы проверили только на плоских страницах, я предлагаю вам попробовать ее на другом модуле.

Отсутствующий ключ INTERNAL_IPS в файле settings.py влияет на видимость панели инструментов. Добавление этого решает проблему:

INTERNAL_IPS = ('127.0.0.1',)

У меня была такая же проблема здесь, и в конце концов я пришел к этому сообщению... Во всяком случае, в моем случае я заметил, что у меня была ошибка javascript в одной из моих библиотек, включенных в js. И это нарушило поток интерпретации JS. Когда я исправил ошибку JavaScript, панель инструментов django работала.

Это объясняет, почему это работает на страницах администратора, а не на страницах моего приложения.

В моем случае я использовал Google Material Design Lite в качестве основы веб-интерфейса,

который имеет определение стиля,

*[hidden]{
    display:none!important;
}

этот стиль применяется к элементам панели отладки, которые ничего не отображают.

быстрым обходным путем было изменение определения стиля MDL (возможно только для локальных таблиц стилей, а не для хоста cdn) на

*[hidden]{
    display:none;
}

У меня была похожая проблема. Решением было закрытие div как непустого HTML-элемента.

Из этого

<body>
...
    <div id="map-canvas"/>
...
</body>

к этому

<body>
...
    <div id="map-canvas"></div>
...
</body>

Надеюсь, поможет!

В моем случае решением было принудительно обновить мою веб-страницу. Просто нажмите Ctrl+F5 и все.

В моем случае ошибка была очень простой.

Я снял нижний колонтитул, и он работал как шарм!

Надеюсь, что это решает проблему для кого-то еще.

Другие вопросы по тегам