Sono giunto al punto in cui ho bisogno di passare determinate variabili a tutte le mie viste (principalmente variabili di tipo di autenticazione personalizzate).creazione del mio processore di contesto in django
Mi è stato detto che scrivere il mio processore di contesto era il modo migliore per farlo, ma ho alcuni problemi.
mio file di impostazioni simile a questo
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.contrib.messages.context_processors.messages",
"sandbox.context_processors.say_hello",
)
Come potete vedere, ho un modulo chiamato 'context_processors' e una funzione all'interno di quella chiamata 'say_hello'.
che si presenta come
def say_hello(request):
return {
'say_hello':"Hello",
}
Ho ragione di assumere ora posso effettuare le seguenti operazioni entro le mie opinioni?
{{ say_hello }}
Al momento, questo non rende nulla nel mio modello.
mio punto di vista assomiglia
from django.shortcuts import render_to_response
def test(request):
return render_to_response("test.html")
Il 'contesto_instance' è ciò che mancava! Grazie TM – dotty
Follow up, come mai ho bisogno di questo context_instance? Come mai non ho bisogno di questo se utilizzo il sistema di autenticazione di django? – dotty
Le viste incorporate di Django gestiscono ciò per te (usano un 'RequestContext'). Pensa al processore di contesto che hai creato. Ci vuole 'request' come argomento. Ciò significa che devi in qualche modo dare la richiesta corrente alla logica di rendering. 'RequestContext' fondamentalmente si limita a gestire la semplice logica del looping di tutti i processori di contesto e passando la richiesta corrente a loro, quindi aggiornando il contesto della pagina con i risultati. –