Intégrer une bafouille sur les context_processors
#9
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Fred/gwift-book#9
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De manière très grossière, les
contexts processors
permettent de définir du contenu accessible globalement dans l'application, par exemple pour définir un menu de navigation ou le titre du site. On parle donc d'éléments qui ne sont pas spécifiques au contexte (vue, fonction, ...) actuel, mais plutôt définis globalement par rapport à l'application.Au niveau de la vue, on a pour habitude de passer un dictionnaire au template; celui-ci sera complété par un ensemble d'autres informations, définies dans les contexts processors.
Techniquement, il s'agit simplement de fonctions référencées au niveau de la configuration de l'application. Si on souhaite générer un menu global, il suffit dès lors de définir une fonction dans un module particulier:
On peut dès lors y accéder dans le template de base:
Pour éviter que ces variables ne soient écrasées par la construction de la vue, la transmission du dictionnaire vers la vue doit être construite en utilisant la fonction
render(request, template, context)
, de la manière suivante. Evitez la fonctionrender_to_response
:Depuis Django 1.10, la variable
TEMPLATE_CONTEXT_PROCESSORS
est dépréciée et doit être remplacée par l'optioncontext_processors
: