Я посмотрел на другие вопросы и не могу понять это...
Для установки django-debug-toolbar я сделал следующее:
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', )
3 Добавлен INTERNAL_IPS:
INTERNAL_IPS = ('174.121.34.187',)
4 Добавлен debug_toolbar для установленных приложений
Я не получаю никаких ошибок или что-то еще, и панель инструментов не отображается ни на одной странице, ни даже на admin.
Я даже добавил каталог шаблонов debug_toolbar к моему TEMPLATE_DIRS
Глупый вопрос, но вы не упомянули об этом, поэтому... Что такое DEBUG
? Он не будет загружаться, если он не будет True
.
Если он все еще не работает, попробуйте добавить '127.0.0.1' в INTERNAL_IPS
.
UPDATE
Это шаг назад, вы не должны этого делать, но он ясно покажет, есть ли какая-то проблема с настройкой или какая-то большая проблема.
Добавьте в settings.py следующее:
def show_toolbar(request):
return True
SHOW_TOOLBAR_CALLBACK = show_toolbar
Это позволит эффективно удалить все проверки с помощью панели инструментов отладки, чтобы определить, нужно ли это или не должно загружать себя; он всегда будет просто загружаться. Оставайтесь только в целях тестирования, если вы забудете и запустите с ним, все ваши посетители также смогут увидеть вашу панель инструментов отладки.
Для явной настройки см. также официальные файлы установки здесь.
ИЗМЕНИТЬ (6/17/2015):
По-видимому, синтаксис ядерной опции изменился. Теперь он в своем словаре:
def show_toolbar(request):
return True
DEBUG_TOOLBAR_CONFIG = {
"SHOW_TOOLBAR_CALLBACK" : show_toolbar,
}
Их tests используют этот словарь.
True
Панель инструментов Debug хочет, чтобы IP-адрес был запрошен. META ['REMOTE_ADDR'] устанавливается в настройке INTERNAL_IPS. Выполните печать в одном из своих представлений:
print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR'])
И затем загрузите эту страницу. Убедитесь, что IP находится в настройках INTERNAL_IPS в settings.py.
Обычно я бы подумал, что вы сможете легко определить адрес, посмотрев на свой IP-адрес компьютера, но в моем случае я запускаю сервер в виртуальной коробке с переадресацией портов... и кто знает, что произошло, Несмотря на то, что он не видел его где-либо в ifconfig на VB или моей собственной ОС, IP-адрес, который появился в ключе REMOTE_ADDR, был тем, что помогло активировать панель инструментов.
INTERNAL_IPS
и он начал работать.
Если все остальное в порядке, также может быть, что вашему шаблону не хватает явного закрывающего тега <body>
-
Текущая стабильная версия 0.11.0 требует, чтобы отображалась панель инструментов:
Файл настроек:
DEBUG = True
INTERNAL_IPS
, чтобы указать IP-адрес вашего браузера, в отличие от адреса сервера. При локальном просмотре это должно быть INTERNAL_IPS = ('127.0.0.1',)
. Если вы просматриваете удаленно, просто укажите свой общий адрес.INSTALLED_APPS = (..., 'debug_toolbar',)
MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...)
. Он должен быть помещен как можно раньше в список.Файлы шаблонов:
text/html
</html>
Статические файлы:
Если вы используете статический контент, убедитесь, что вы собрали css, js и html, выполнив:
./manage.py collectstatic
Примечание о предстоящих версиях django-debug-toolbar
В более новых версиях разработки добавлены значения по умолчанию для точек настройки 2, 3 и 4, что делает жизнь немного проще, однако, как и в любой версии разработки, она имеет ошибки. Я обнаружил, что последняя версия от git привела к ошибке ImproperlyConfigured
при запуске через nginx/uwsgi.
В любом случае, если вы хотите установить последнюю версию из github run:
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar
Вы также можете клонировать конкретную фиксацию, выполняя:
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git@ba5af8f6fe7836eef0a0c85dd1e6d7418bc87f75#egg=django_debug_toolbar
./manage.py collectstatic
- это то, что мне было нужно, спасибо!
У меня панель инструментов работает идеально. С помощью этих конфигураций:
DEBUG = True
INTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)
DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}
MIDDLEWARE_CLASSES
:MIDDLEWARE_CLASSES = ( 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', )
Я надеюсь, что это поможет
Добавьте 10.0.2.2
в свой INTERNAL_IPS в Windows, он используется с внутренним брандом
INTERNAL_IPS = ( '10.0.2.2', )
Это должно работать.
Я попробовал все: от установки DEBUG = True
до настроек INTERNAL_IPS
до моего IP-адреса клиента и даже вручную настроить панель инструментов Django Debug (обратите внимание, что последние версии автоматически настраивают все конфигурации, такие как добавление промежуточного программного обеспечения и URL-адресов). На удаленном сервере разработки ничего не работало (хотя оно работало локально).
ТОЛЬКО работала, настраивая панель инструментов следующим образом:
DEBUG_TOOLBAR_CONFIG = {
"SHOW_TOOLBAR_CALLBACK" : lambda request: True,
}
Это заменяет метод по умолчанию, который определяет, должна ли отображаться панель инструментов и всегда возвращает true.
У меня была та же проблема и, наконец, она была решена после некоторых поисковых запросов.
В INTERNAL_IPS вам нужно иметь IP-адрес клиента.
Еще одна вещь, которая может заставить панель инструментов оставаться скрытой, - если она не может найти требуемые статические файлы. Шаблоны debug_toolbar используют тег шаблона {{STATIC_URL}}, поэтому убедитесь, что в ваших статических файлах, называемых панелью отладки, есть папка.
Команда управления коллекцией должна позаботиться об этом на большинстве установок.
Я попробовал конфигурацию из pydanny cookiecutter-django, и это сработало для меня:
# django-debug-toolbar
MIDDLEWARE_CLASSES = Common.MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',)
INSTALLED_APPS += ('debug_toolbar',)
INTERNAL_IPS = ('127.0.0.1',)
DEBUG_TOOLBAR_CONFIG = {
'DISABLE_PANELS': [
'debug_toolbar.panels.redirects.RedirectsPanel',
],
'SHOW_TEMPLATE_CONTEXT': True,
}
# end django-debug-toolbar
Я просто изменил его, добавив 'debug_toolbar.apps.DebugToolbarConfig'
вместо 'debug_toolbar'
, как указано в официальном django-debug-toolbar docs, так как я используя Django 1.7.
django 1.8.5:
Мне пришлось добавить в файл url.py проекта, чтобы отобразить панель инструментов отладки. После этого отобразится панель инструментов отладки.
from django.conf.urls import include
from django.conf.urls import patterns
from django.conf import settings
if settings.DEBUG:
import debug_toolbar
urlpatterns += patterns('',
url(r'^__debug__/', include(debug_toolbar.urls)),
)
django 1.10: и выше:
from django.conf.urls import include, url
from django.conf.urls import patterns
from django.conf import settings
if settings.DEBUG:
import debug_toolbar
urlpatterns =[
url(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
Также не забудьте включить debug_toolbar в ваше промежуточное программное обеспечение. Панель инструментов Debug в основном реализована в промежуточном программном обеспечении. Включите его в своем модуле настроек следующим образом: (более ранние версии django)
MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
#
Старое промежуточное ПО: (необходимо иметь ключевое слово _CLASSES в промежуточном ПО)
MIDDLEWARE_CLASSES = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
В дополнение к предыдущим ответам:
если панель инструментов не отображается, но загружается в html (проверьте свой сайт html в браузере, прокрутите вниз)
проблема может заключаться в том, что статические файлы панели отладки не найдены (это также можно увидеть в журналах доступа к сайту, например, 404 ошибки для /static/debug _toolbar/js/toolbar.js)
Его можно исправить следующим образом (примеры для nginx и apache):
nginx config:
location ~* ^/static/debug_toolbar/.+.(ico|css|js)$ {
root [path to your python site-packages here]/site-packages/debug_toolbar;
}
apache config:
Alias /static/debug_toolbar [path to your python site-packages here]/site-packages/debug_toolbar/static/debug_toolbar
Или:
manage.py collectstatic
подробнее о collectstatic здесь: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic
Или вручную переместить папку debug_toolbar из статических файлов debug_toolbar в папку с установленными статическими файлами.
В моем случае мне просто нужно было удалить скомпилированные файлы на python (*.pyc
)
В моем случае это была еще одна проблема, о которой здесь еще не упоминалось: у меня была GZipMiddleware в моем списке посредников.
Поскольку автоматическая настройка панели инструментов отладки помещает промежуточное программное обеспечение панели отладки вверху, она получает только "см." gzipped HTML, к которому он не может добавить панель инструментов.
Я удалил GZipMiddleware в моих настройках разработки. Настройка конфигурации панели инструментов отладки вручную и размещение промежуточного программного обеспечения после GZip также должно работать.
gzip_page
приводит к исчезновению панели инструментов. docs.djangoproject.com/en/2.0/topics/http/decorators/...
Это было не так для этого конкретного автора, но я просто боролся с панелью Debug Toolbar, которая не показывалась, и после всего, что они указали, я обнаружил, что это проблема с заказом MIDDLEWARE. Поэтому использование промежуточного ПО в начале списка может работать. Первая шахта:
MIDDLEWARE_CLASSES = (
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'dynpages.middleware.DynpageFallbackMiddleware',
'utils.middleware.UserThread',
)
Для тех, кто использует Pycharm 5 - отладка шаблонов в некоторых версиях не работает. Исправлено в 5.0.4, затронутые версии - 5.0.1, 5.0.2 Проверьте issue
Потратьте время, чтобы найти это. Возможно, кто-то поможет
У меня была эта проблема, и мне пришлось установить панель инструментов отладки из источника.
Версия 1.4 имеет проблему, когда она скрыта, если вы используете PureCSS и, по-видимому, другие рамки CSS.
Это - это фиксация, которая исправляет это.
Документы объясняют, как установить из источника.
У меня была такая же проблема с использованием Vagrant. Я решил эту проблему, добавив ::ffff:192.168.33.1
в INTERNAL_IPS, как показано ниже.
INTERNAL_IPS = (
'::ffff:192.168.33.1',
)
Помня, что 192.168.33.10
является IP-адресом в моей частной сети в Vagrantfile.
У меня такая же проблема, я решил ее, посмотрев журнал ошибок Apache. Я получил apache, работающий на mac os x с mod_wsgi Папка tamplete debug_toolbar не была загружена
Пример журнала:
==> /private/var/log/apache2/dummy-host2.example.com-error_log <==
[Sun Apr 27 23:23:48 2014] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/rblreport/rbl/static/debug_toolbar, referer: http://127.0.0.1/
==> /private/var/log/apache2/dummy-host2.example.com-access_log <==
127.0.0.1 - - [27/Apr/2014:23:23:48 -0300] "GET /static/debug_toolbar/css/toolbar.css HTTP/1.1" 404 234 "http://127.0.0.1/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0"
Я просто добавляю эту строку в свой файл VirtualHost:
Alias /static/debug_toolbar /Library/Python/2.7/site-packages/debug_toolbar/static/debug_toolbar
Для меня это было так же просто, как ввести 127.0.0.1:8000
в адресную строку, а не localhost:8000
, которая, по-видимому, не соответствовала INTERNAL_IPS.
вы должны убедиться, что в ваших шаблонах есть закрывающий тег.
Моя проблема в том, что в моих шаблонах нет регулярных тегов html, я просто показываю контент в виде обычного текста. Я решил это, наследуя каждый html файл из base.html, который имеет тег.
Одна глупая вещь заставила меня.. что если вы используете apache wsgi, не забудьте прикоснуться к файлу .wsgi, чтобы заставить ваш код перекомпилировать. просто потратьте 20 минут моего времени на отладку глупой ошибки: (
INTERNAL_IPS
правильный. Один из способов проверки заключается в представлении, распечатайте вашrequest.META['REMOTE_ADDR']
, а затем добавьте его в свойINTERNAL_IPS
.'*'
во внутренние IP-адреса, но это не работает. Вы должны ввести конкретные IP-адреса.