Question

Si environ la moitié de mes vues requièrent le même ensemble de données, est-il approprié d'utiliser un processeur de contexte pour rendre les données toujours disponibles ou existe-t-il un meilleur moyen d'éviter de répéter le code pour obtenir ces données sur plusieurs vues sans interroger les données si elles ne seront pas utilisées dans la vue?

Était-ce utile?

La solution

L'initialiseur RequestContext exécutera tous les processeurs de contexte répertoriés dans le fichier de paramètres, mais il faudra également une liste de processeurs supplémentaires à exécuter. Tous les processeurs de contexte à usage général peuvent être placés dans settings.py et des processus plus spécifiques peuvent être ajoutés à RequestContext au cas par cas.

Laissez RequestContext complètement pour ne pas exécuter de processeurs de contexte.

# 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'})

Autres conseils

Vous pouvez filtrer les vues qui utilisent réellement des processeurs de contexte en transmettant uniquement RequestContext (demande) uniquement à ceux qui en ont besoin, par exemple:

.
# 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'})
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top