2010-01-14 14 views
30

Sono nuovo di Django e mi chiedo se esiste un modo per scaricare tutte le variabili disponibili per un modello a scopo di debug. In Python potrei usare qualcosa come locals(), c'è qualcosa di equivalente per il motore di template predefinito?Come ottengo tutte le variabili definite in un modello Django?

Nota: supponiamo che non abbia accesso alla vista ai fini di questa domanda.

risposta

48

entrambe le risposte di Blaine di Ned e sono buone, ma se si vuole veramente ottenere esattamente quello che chiedi c'è un tag modello per esso:

{% debug %}

Builtins:debug

Maggiori informazioni nel context_processor.debug incluso:

Se questo processore è abilitato, ogni RequestContext conterrà di debug ed e sql_queries variabili - ma solo se l'impostazione di debug è impostata su true e l'indirizzo IP del richiesta (request.META['REMOTE_ADDR']) è nelle INTERNAL_IPS impostazione

simili a Peter G suggestione, Io uso spesso un blocco <div id="django-debug"><pre>{% debug|escape %}</pre></div> alla fine della pagina che ha display:none ma che posso controllare per il debug.

+0

Molto bello. Grazie. –

+15

Per rendere questo un po 'più leggibile, si potrebbe usare:

{% filter force_escape %}{% debug %}{% endfilter %}

+0

@PeterG infatti, è praticamente quello che faccio anche io! E a volte lo metto in un elemento della pagina di fondo, ecc. – Stefano

8

Potresti anche essere interessato a django-template-repl, una shell di readline per il linguaggio template di Django. È possibile rilasciare un {% load repl %}{% pdb %} nel modello e ottenere un debugger interattivo.

5

Mentre le due soluzioni fornite dagli altri membri possono ottenere l'accesso a tutte le variabili in un modello, ho pensato che ci fosse un modo più semplice (grazie per le vostre risposte, BTW).

Ecco un modo semplice per trovare tutte le variabili passate al modello.

  1. Introdurre un errore nel modello che si desidera esaminare. L'aggiunta di un tag inesistente funziona.
  2. Verificare che il debug sia attivo.
  3. Passare alla pagina che carica il modello. (il tuo sito deve essere eseguito tramite runserver o altri mezzi).

L'output di debug per il modello contiene una sezione denominata "TraceBack". Trova il traceback per la tua vista (seconda voce dall'alto nel mio caso) e clicca su "Local vars". Ed è tutto lì.

Problemi correlati