2010-06-16 16 views
8

Questa è una domanda piuttosto basilare (sono nuovo di Django) ma ho problemi nell'usare una variabile impostata nella mia vista all'interno del mio modello. Se inizializzo una stringa o una lista all'interno della vista (ad esempio h = "ciao") e quindi provo a chiamarla all'interno di un modello:
{{ h }}
non c'è né output né errori. Allo stesso modo, se si tenta di utilizzare una variabile all'interno del mio modello che non esiste:
Utilizzo delle variabili di visualizzazione di Django all'interno dei modelli

{{ asdfdsadf }} 

non v'è ancora una volta non ha segnalato l'errore. È normale? E come posso usare le mie variabili nei miei modelli. Grazie!

risposta

22

Per poter accedere a una variabile in un modello, è necessario che sia nel contesto utilizzato per il rendering del modello. La mia ipotesi è che non si sta passando un dizionario di contesto al modello quando lo si esegue il rendering.

http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

Il "dizionario" ha fatto riferimento non è un dizionario che contiene tutte le variabili che si desidera avere a disposizione nel contesto. Ad esempio:

Per quanto riguarda l'errore "nessun errore" ... Questa è l'impostazione predefinita per una variabile modello non valida. Puoi modificarlo nelle impostazioni del progetto, se lo desideri.

http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid

3

Sì! E 'normale. Tali errori nei template falliscono silenziosamente e questo è previsto in Django.

di rendere l'uso corretto modello render_to_response('your_template.html', {'h':h}) (c'è anche un brutto scorciatoia render_to_response('your_template.html', locals()) se il dizionario contesto è molto grande)

qui è una spiegazione di esempi: http://www.djangobook.com/en/beta/chapter04/ (sezione 'Come le variabili non valide sono gestite')

Problemi correlati