La depuración de Django muestra todas las variables de una página

Respuestas:

85

Hay varias opciones (algunas de ellas ya enumeradas anteriormente):

  1. etiqueta de depuración incorporada de django : uso este texto estándar para mostrarlo correctamente:

    <pre> {% filter force_escape%} {% debug%} {% endfilter%} </pre>

  2. Use las etiquetas de la aplicación de depuración de plantillas de django como atributos, variables y detalles o incluso puede establecer un punto de interrupción dentro de una plantilla donde puede inspeccionar todo con pdb debugger (o ipdb)

  3. Barra de herramientas de depuración de Django : tiene un panel de plantilla para este propósito

Por lo general, todas las funciones de depuración solo funcionan cuando la aplicación está en modo DEBUG .

Robert Lujo
fuente
16

Consejo profesional. Utilice textareay seleccione automáticamente onclickpara copiar y pegar más fácilmente:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>
Capucho
fuente
10

La barra de herramientas de depuración hace todo esto y mucho, mucho más. Vea el screencast para más información. Si literalmente solo quiere las variables, puede intentar

assert False, locals()

en tu vista

Tom
fuente
Gracias. Como estoy usando una visión genérica, hay una manera de convocar a un "falso afirmar, los locales ()"
Eaman
chicos, tengo la barra de herramientas de depuración instalada y funcionando, pero no muestra todas las variables disponibles para mí en la plantilla ... ¿me falta algo ... dónde dice esto falso, locals () y qué hace exactamente ?
Derek Organ
Si ha escrito una vista personalizada, colóquela cerca del final de su vista. Si está utilizando una vista genérica, deberá ajustarla en su propia vista. De todos modos, creo que funcionaría.
Tom
8

Una solución un poco más compleja con mejores recompensas es cargar django-debug-toolbar (documentación aquí )

Hay una opción llamada 'Plantillas' con otra opción para 'Alternar contexto' y puede ver todas las variables pasadas a su plantilla, así como la capacidad de ver el código detrás de la plantilla.

Ejemplo de depuración de plantilla de django-debug-toolbar

Aaron C. de Bruyn
fuente
Obtengo '<<triggers database query>>'como valor
Stephen
Leería la documentación y, si eso falla, iría al proyecto django-debug-toolbar y solicitaría ayuda: github.com/jazzband/django-debug-toolbar
Aaron C. de Bruyn