Domanda

Se circa la metà delle mie visualizzazioni richiede lo stesso set di dati, è appropriato utilizzare un processore di contesto per rendere i dati sempre disponibili o esiste un modo migliore per evitare di ripetere il codice per ottenere quei dati su più visualizzazioni senza interrogare i dati se non verranno utilizzati nella vista?

È stato utile?

Soluzione

L'inizializzatore RequestContext eseguirà tutti i processori di contesto elencati nel file delle impostazioni, ma richiede anche un elenco di processori aggiuntivi da eseguire. Tutti i processori di contesto per scopi generici possono essere inseriti in settings.py e altri più specifici possono essere aggiunti al RequestContext caso per caso.

Lasciare RequestContext completamente fuori per non eseguire processori di contesto.

# want context processors listed in settings.py as well as some more specific ones
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request, processors = extra_processors))

# want only context processors listed in settings.py
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))

# no context processors
return render_to_response('template.html', {'foo':'bar'})

Altri suggerimenti

Puoi filtrare quali viste utilizzano effettivamente i processori di contesto passando solo RequestContext (richiesta) solo a quelle che ne hanno bisogno, ad es .:

# want context processors
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))

# no context processors
return render_to_response('template.html', {'foo':'bar'})
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top