Ceci est une question très similaire à ce fil SO sur middleware and views communicatingmiddleware par rapport à processeur de contexte pour une vue navigation/affichage dépendant
Nous aimerions que nos modèles soient donnés un ensemble standard de variables de contexte. Ainsi, un processeur de contexte semble approprié, cependant, il ne semble pas que le processeur de contexte soit sensible à la vue. Nous avions auparavant été contraints d'inspecter la pile d'appels pour obtenir des informations contextuelles sur la vue qui faisait quoi.
C'est là que nous avons vu le thread middleware ainsi que la signature process_view()
pour un middleware qui nous donne un aperçu de la vue.
Cela semblait plus proche de nos besoins, mais ne nous permettait pas de modifier la variable de contexte, pas plus que les autres méthodes de middleware. Donc, notre idée initiale était de modifier l'objet requête avec toutes les informations globales et contextuelles dont nous avions besoin pour nos modèles et de forcer les modèles à appeler depuis {{request.something}}
pour les informations spécifiques dont nous avons besoin, comme {{request.viewname}}
.
Ainsi, nos questions:
- modifie les valeurs de réglage/objet sur la demande une chose acceptée à faire pour pousser des informations spécifiques de l'application contextuelle/globale de vos modèles? Ou la pratique standard est-elle toujours de le mettre en contexte?
- Y a-t-il des moyens/astuces pour rendre la vue des processeurs de contexte consciente qui n'implique pas de la passer explicitement ou de faire une introspection de pile?
- Est-ce que le
middleware.process_response
peut modifier le contexte ou est-il immuable?
Voir aussi http://jboxer.com/2009/05/django-middleware-vs-context-processors/ – Ztyx