Miré otras preguntas y no puedo resolverlo ...
Hice lo siguiente para instalar django-debug-toolbar:
- pip install django-debug-toolbar
- agregado a las clases de middleware:
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 agregados:
INTERNAL_IPS = ('174.121.34.187',)
4 Se agregó debug_toolbar a las aplicaciones instaladas
No recibo ningún error ni nada, y la barra de herramientas no aparece en ninguna página, ni siquiera en el administrador.
Incluso agregué el directorio de las plantillas debug_toolbar a mi TEMPLATE_DIRS
python
django
django-debug-toolbar
AlexBrand
fuente
fuente
INTERNAL_IPS
sea correcto. Una forma de verificar es en una vista, imprima surequest.META['REMOTE_ADDR']
, luego agregue eso a suINTERNAL_IPS
.'*'
las IP internas, pero eso no funciona. Tienes que ingresar direcciones IP específicas.Respuestas:
Pregunta estúpida, pero no lo mencionaste, así que ... ¿Qué está
DEBUG
configurado? No se cargará a menos que seaTrue
.Si todavía no funciona, intente agregar '127.0.0.1'
INTERNAL_IPS
también.ACTUALIZAR
Este es un movimiento de último esfuerzo, no debería tener que hacer esto, pero mostrará claramente si hay simplemente algún problema de configuración o si hay algún problema mayor.
Agregue lo siguiente a settings.py:
Eso eliminará efectivamente todas las comprobaciones mediante la barra de herramientas de depuración para determinar si debe o no cargarse; siempre solo se cargará. Solo déjelo para fines de prueba, si lo olvida y se inicia con él, todos sus visitantes también podrán ver su barra de herramientas de depuración.
Para una configuración explícita, también vea los documentos oficiales de instalación aquí .
EDITAR (17/06/2015):
Aparentemente, la sintaxis de la opción nuclear ha cambiado. Ahora está en su propio diccionario:
Sus pruebas usan este diccionario.
fuente
runserver
asegurarse de reiniciarlo. Diablos, reiniciarrunserver
también. Asegúrese de que sus cambios en settings.py realmente se hayan guardado / confirmado. Es posible que desee intentar eliminar archivos * .pyc. En * nix, puede hacerlo simplementefind . -name "*.pyc" -exec rm {} \;
desde la raíz del proyecto. Finalmente, ejecutapython manage.py shell
y ejecutafrom django.conf import settings
y verifica el valor desettings.INSTALLED_APPs
.INTERNAL_IPS
, son para el cliente, no para el servidor (Django). En otras palabras, ingresa su dirección IP para que pueda ver la barra de herramientas de depuración, sin importar en qué IP se esté ejecutando el sitio.SHOW_TOOLBAR_CALLBACK = lambda x: True
collectstatic
para que todo apareciera.La barra de herramientas de depuración desea que la dirección IP en request.META ['REMOTE_ADDR'] se configure en la configuración INTERNAL_IPS. Agregue una declaración impresa en una de sus vistas de la siguiente manera:
Y luego carga esa página. Asegúrese de que IP esté en su configuración INTERNAL_IPS en settings.py.
Normalmente, pensaría que sería capaz de determinar la dirección fácilmente mirando la dirección IP de su computadora, pero en mi caso estoy ejecutando el servidor en una Virtual Box con reenvío de puertos ... y quién sabe qué pasó. A pesar de no verlo en ninguna parte de ifconfig en el VB o en mi propio sistema operativo, la IP que apareció en la clave REMOTE_ADDR fue lo que hizo el truco de activar la barra de herramientas.
fuente
INTERNAL_IPS
y comenzó a funcionar.Si todo lo demás está bien, también podría ser que su plantilla carezca de una
<body>
etiqueta de cierre explícita:fuente
DEBUG_TOOLBAR_CONFIG = {'INSERT_BEFORE':'</head>'}
funcionóLa versión estable actual 0.11.0 requiere que las siguientes cosas sean ciertas para que se muestre la barra de herramientas:
Archivo de configuración:
DEBUG = True
INTERNAL_IPS
para incluir la dirección IP de su navegador, en lugar de la dirección del servidor. Si navega localmente, esto debería serINTERNAL_IPS = ('127.0.0.1',)
. Si navega de forma remota, solo especifique su dirección pública .INSTALLED_APPS = (..., 'debug_toolbar',)
MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...)
. Debe colocarse lo antes posible en la lista.Archivos de plantilla:
text/html
</html>
etiqueta de cierreArchivos estáticos:
Si está sirviendo contenido estático, asegúrese de recopilar css, js y html haciendo lo siguiente:
Nota sobre las próximas versiones de django-debug-toolbar
Las versiones de desarrollo más recientes han agregado valores predeterminados para los puntos de configuración 2, 3 y 4, lo que simplifica un poco la vida, sin embargo, como con cualquier versión de desarrollo, tiene errores. Descubrí que la última versión de git provocó un
ImproperlyConfigured
error al ejecutar nginx / uwsgi.De cualquier manera, si desea instalar la última versión de github run:
También puede clonar una confirmación específica haciendo:
fuente
Intenté todo, desde la configuración
DEBUG = True
hasta la configuraciónINTERNAL_IPS
de la dirección IP de mi cliente e incluso configurando la barra de herramientas de depuración de Django manualmente (tenga en cuenta que las versiones recientes hacen todas las configuraciones automáticamente, como agregar el middleware y las URL). Nada funcionaba en un servidor de desarrollo remoto (aunque sí funcionaba localmente). Lo ÚNICO que funcionó fue configurar la barra de herramientas de la siguiente manera:Esto reemplaza el método predeterminado que decide si se debe mostrar la barra de herramientas, y siempre devuelve verdadero.
fuente
Estibador
Si está desarrollando con un servidor Django en un contenedor Docker con docker, las instrucciones para habilitar la barra de herramientas no funcionan. La razón está relacionada con el hecho de que la dirección real a la que tendría que agregar
INTERNAL_IPS
será algo dinámico, como 172.24.0.1. En lugar de intentar establecer dinámicamente el valor deINTERNAL_IPS
, la solución directa es reemplazar la función que habilita la barra de herramientas, en susettings.py
, por ejemplo:Esto también debería funcionar para otras situaciones de enrutamiento dinámico, como vagabundo.
Aquí hay algunos detalles más para los curiosos. El código en django_debug_tool que determina si se muestra la barra de herramientas examina el valor de
REMOTE_ADDR
esta manera:así que si realmente no conoce el valor
REMOTE_ADDR
debido a su enrutamiento dinámico de docker, la barra de herramientas no funcionará. Puede usar el comando docker network para ver los valores dinámicos de IP, por ejemplodocker network inspect my_docker_network_name
fuente
Tengo la barra de herramientas funcionando perfectamente. Con estas configuraciones:
DEBUG = True
INTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)
DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}
MIDDLEWARE_CLASSES
:Espero que ayude
fuente
base.py
Es posible que desee agregar esto a sulocal.py
:MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE_CLASSES
.Agregue
10.0.2.2
a su INTERNAL_IPS en Windows, se usa con vagabundo internamenteINTERNAL_IPS = ('10 .0.2.2 ',)
Esto debería funcionar.
fuente
Tuve el mismo problema y finalmente lo resolví después de buscar en Google.
En INTERNAL_IPS, debe tener la dirección IP del cliente .
fuente
Otra cosa que puede hacer que la barra de herramientas permanezca oculta es si no puede encontrar los archivos estáticos necesarios. Las plantillas de debug_toolbar usan la etiqueta de plantilla {{STATIC_URL}}, así que asegúrese de que haya una carpeta en sus archivos estáticos llamada barra de herramientas de depuración.
El comando de gestión colectiva debería ocuparse de esto en la mayoría de las instalaciones.
fuente
Probé la configuración de cookiecutter-django de pydanny y funcionó para mí:
Simplemente lo modifiqué agregando en
'debug_toolbar.apps.DebugToolbarConfig'
lugar de'debug_toolbar'
lo mencionado en los documentos oficiales de django-debug-toolbar , ya que estoy usando Django 1.7.fuente
Una adición a las respuestas anteriores:
si la barra de herramientas no aparece, pero se carga en el html (revise el html de su sitio en un navegador, desplácese hacia abajo)
el problema puede ser que no se encuentran los archivos estáticos de la barra de herramientas de depuración (también puede ver esto en los registros de acceso de su sitio, por ejemplo, errores 404 para /static/debug_toolbar/js/toolbar.js)
Se puede arreglar de la siguiente manera (ejemplos para nginx y apache):
nginx config:
configuración de apache:
O:
Más información sobre collectstatic aquí: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic
O mueva manualmente la carpeta debug_toolbar de los archivos estáticos debug_toolbar a su carpeta de archivos estáticos configurados
fuente
En mi caso, era otro problema que aún no se ha mencionado aquí: tenía GZipMiddleware en mi lista de middlewares.
Como la configuración automática de la barra de herramientas de depuración coloca el middleware de la barra de herramientas de depuración en la parte superior, solo obtiene el "ver" el HTML comprimido, al que no puede agregar la barra de herramientas.
Eliminé GZipMiddleware en mi configuración de desarrollo. Configurar la configuración de la barra de herramientas de depuración manualmente y colocar el middleware después de GZip también debería funcionar.
fuente
gzip_page
hace que la barra de herramientas desaparezca. docs.djangoproject.com/en/2.0/topics/http/decorators/…En mi caso, solo necesitaba eliminar los archivos compilados de Python (
*.pyc
)fuente
django 1.8.5:
Tuve que agregar lo siguiente al proyecto url.py para obtener la visualización de la barra de herramientas de depuración. Después de eso se muestra la barra de herramientas de depuración.
django 1.10: y superior:
Además, no olvide incluir debug_toolbar en su middleware. La barra de herramientas de depuración se implementa principalmente en un middleware. Habilítelo en su módulo de configuración de la siguiente manera: (versiones más recientes de django)
Middleware de estilo antiguo: (necesita tener el trabajo clave _CLASSES en el Middleware)
fuente
Este no fue el caso de este autor específico, pero solo he estado luchando con la barra de herramientas de depuración que no se muestra y después de hacer todo lo que señalaron, descubrí que era un problema con el pedido de MIDDLEWARE. Así que poner el middleware al principio de la lista podría funcionar. El mío es primero:
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', )
fuente
debe asegurarse de que haya una etiqueta de cierre en sus plantillas.
Mi problema es que no hay etiquetas html regulares en mis plantillas, solo visualizo contenido en texto plano. Lo resolví heredando cada archivo html de base.html, que tiene una etiqueta.
fuente
Para mí, esto fue tan simple como escribir
127.0.0.1:8000
en la barra de direcciones, en lugar de lolocalhost:8000
que aparentemente no coincidía con INTERNAL_IPS.fuente
Tengo el mismo problema, lo resolví mirando el registro de errores de Apache. Obtuve el apache ejecutándose en mac os x con mod_wsgi La carpeta de tamplete de debug_toolbar no se estaba cargando
Muestra de registro:
Solo agrego esta línea a mi archivo VirtualHost:
fuente
Tuve el mismo problema usando Vagrant. Resolví este problema agregando
::ffff:192.168.33.1
a INTERNAL_IPS como el siguiente ejemplo.Recordando que
192.168.33.10
es la IP en mi red privada en Vagrantfile.fuente
Tuve este problema y tuve que instalar la barra de herramientas de depuración desde el origen.
La versión 1.4 tiene un problema donde está oculto si usa PureCSS y aparentemente otros marcos CSS.
Este es el commit que corrige eso.
Los documentos explican cómo instalar desde la fuente.
fuente
Para cualquiera que esté usando Pycharm 5, la depuración de plantillas no funciona en algunas versiones. Vesions fijo en 5.0.4, 5.0.1 - afectadas, 5.0.2 Salida tema
Pase MUCHO tiempo para descubrirlo. Quizás ayude a alguien
fuente
En el código en el que estaba trabajando, se realizaron varias solicitudes pequeñas durante el manejo de la solicitud principal (es un caso de uso muy específico). Eran solicitudes manejadas por el mismo hilo de Django. La barra de herramientas de depuración de Django (DjDT) no espera este comportamiento e incluye las barras de herramientas de DjDT a la primera respuesta y luego elimina su estado para el hilo. Entonces, cuando la solicitud principal se devolvió al navegador, DjDT no se incluyó en la respuesta.
Lecciones aprendidas: DjDT guarda su estado por hilo. Elimina el estado de un hilo después de la primera respuesta.
fuente
¡Lo que me consiguió es un navegador desactualizado!
Noté que carga algunas hojas de estilo de la barra de herramientas de depuración y supuse que podría ser un problema de front-end.
fuente
Sé que esta pregunta es un poco antigua, pero hoy instalé django-toolbar con docker y encontré el mismo problema, esto me lo resolvió
Como leí en un comentario, el problema es que Docker usa una IP dinámica, para resolver esto podemos obtener la IP del código anterior
fuente
Una cosa estúpida me atrapó ... que si usas apache wsgi, recuerda tocar el archivo .wsgi para forzar la recompilación de tu código. solo pierdo 20 minutos de mi tiempo para depurar el estúpido error :(
fuente