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-ответе был хотя бы закрывающий тег body>.
Этот тег можно изменить, изменив 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 и все.
В моем случае ошибка была очень простой.
Я снял нижний колонтитул, и он работал как шарм!
Надеюсь, что это решает проблему для кого-то еще.