2015-03-11 3 views
6

Независимо от того, что я делаю, я просто не могу получить панель инструментов django-debug. Я пробовал все, что было предложено в every answer on this question.Невозможно отобразить панель инструментов django-debug

  • У меня есть DEBUG=True в моих настройках
  • У меня есть django.contrib.staticfiles и debug_toolbar в INSTALLED_APPS
  • меня 'debug_toolbar.middleware.DebugToolbarMiddleware' высоко в MIDDLEWARE_CLASSES
  • меня INTERNAL_IPS =() в моих настройках
  • Я попытался добавления print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR']) в вид, и он напечатан IP Address for debug-toolbar: 127.0.0.1
  • У меня есть закрытие </body></html> в моем шаблоне
  • Я бежал pip install django-debug-toolbar в моем virtualenv, без каких-либо проблем
  • я запустить python manage.py collectstatic и есть каталог debug_toolbar в моих статических файлов не

Когда я запустить приложение, я не вижу запросите в консоли любые URL-адреса, содержащие django_debug_toolbar, поэтому я подозреваю, что приложение не загружается.

Я тоже не вижу неудачных запросов в консоли разработчика.

Я читал django-debug-toolbar installation docs и не в идеях.

Есть ли у кого-нибудь предложения по отладке? Я запускаю OSX и Django 1.7. Любопытно, что панель отладки WAS выглядит просто великолепно - я думаю, что сделал некоторые настройки, которые заставили ее исчезнуть, но я не знаю, что.

UPDATE: Я даже пытался добавить это в моем файле настроек, который должен заставить панель появляться:

def show_toolbar(request): 
    return True 
SHOW_TOOLBAR_CALLBACK = show_toolbar 

Но это не помогает.

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

ОБНОВЛЕНИЕ 2: Когда я установил INTERNAL_IPS=('127.0.0.1',), я начинаю видеть запросы панели отладки в консоли, но нет панели инструментов на странице.

И следующий HTML появляется в моей странице - так что панель инструментов, но это не видно, потому что он получил display=none установить над ним:

enter image description here

+0

Итак, интересно, если я установил 'INTERNAL_IPS = ('127.0.0.1',)' в настройках, я начинаю видеть запросы на файлы 'debug_toolbar' в консоли и в DevTools в браузере. Однако сама панель инструментов остается невидимой. Очень странно. – Richard

+0

Есть ли какой-либо конфликт JS в консоли вашего браузера? Это также возможно конфликт CSS. – rnevius

+0

Используя «проверять элемент», я вижу, что панель инструментов находится в визуализированном HTML, но все ее панели содержимого явно настроены на 'display: none'. Почему это может быть? – Richard

ответ

3

Все дивы с display: none; фактически вести себя правильно. Они не изменятся на display: block;, пока вы на самом деле не нажмете на них на панели инструментов.

Кнопка, используемая для переключения панели инструментов, - это div с id="djDebugToolbarHandle". Как вы можете видеть на консоли, эта кнопка имеет top положение 2310px. Это означает, что он является рендерингом, но это просто путь вниз страницы.

Try введя в консоли, чтобы сбросить свою позицию:

document.getElementById('djDebugToolbarHandle').style.top="30px"; 
+1

Woah! Это работает! Спасибо большое! Теперь я буду копаться и попытаться выяснить, почему этот стиль был сброшен ... – Richard

+1

Да, это странно. Я рад, что мое решение сработало для вас. – rnevius

+0

В django-debug-toolbar есть код, который явно устанавливает значение 'top': ob/7a82ac3b78099de4bd00fa4503cca9a699a80299/debug_toolbar/static/debug_toolbar/js/toolbar.js # L134-L152 Интересно, является ли это ошибкой? – Richard

3

У меня была та же проблема, но удалось это исправить следующие dvl's comment on this page. Вот краткое исправление:

В settings.py

if DEBUG: 
    MIDDLEWARE += (
     'debug_toolbar.middleware.DebugToolbarMiddleware', 
    ) 
    INSTALLED_APPS += (
     'debug_toolbar', 
    ) 
    INTERNAL_IPS = ('127.0.0.1',) 
    DEBUG_TOOLBAR_CONFIG = { 
     'INTERCEPT_REDIRECTS': False, 
    } 

В urls.py проекта, добавьте этот шаблон URL до конца:

from django.conf import settings 

if settings.DEBUG: 
    import debug_toolbar 

    urlpatterns += [ 
     url(r'^__debug__/', include(debug_toolbar.urls)), 
    ] 
0

некоторой информация для пользователей новостей как я, когда DEV на виртуальной или удаленной машине

Добавить Ligne в views.py файле

print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR']) 

Когда вид является вызов, вы можете увидеть IP клиента в оболочке

Вы должны добавить этот IP в settings.py файл INTERNAL_IPS = («IP»)

0

Я имел то же самое проблема. Изменение модуля поиска в моих настройках.py работало для меня:

STATICFILES_FINDERS = (
    #'django.contrib.staticfiles.finders.FileSystemFinder', #THIS BREAKES debug_toolbar 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', #THIS WORKS 
) 

Обязательно очистите кеш браузера после этого изменения.

Но после этого Django дал мне сообщение об ошибке во время collectstatic, из-за this issue. Я решил создать две конфигурации в моих настройках.py:

class Production(Base): 
    DEBUG = False 
    STATICFILES_FINDERS = (
     'django.contrib.staticfiles.finders.FileSystemFinder', 
    ) 

class Develop(Base): 
    DEBUG = True 
    STATICFILES_FINDERS = (
     'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    ) 

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

1

Одна из причин, по которой панель инструментов django-debug может появляться, но не отображается правильно (элементы, застрявшие в «Загрузка»), если команда manage.py collectstatic не была запущена. Просто подумал, что я отправлю это здесь, если это поможет кому-то.

Смежные вопросы