From 3f220a82b8e832b84a230d923eb193edad81813a Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 13 Sep 2020 16:23:59 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'source/part-3-djan?= =?UTF-8?q?go-concepts/templates.adoc'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/part-3-django-concepts/templates.adoc | 32 +++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/source/part-3-django-concepts/templates.adoc b/source/part-3-django-concepts/templates.adoc index 87444c7..c604e69 100644 --- a/source/part-3-django-concepts/templates.adoc +++ b/source/part-3-django-concepts/templates.adoc @@ -232,4 +232,34 @@ def wishlists_list(): ---- - +=== Contexts Processors + +Un `context processor` permet d'ajouter des informations par défaut à un contexte (le dictionnaire qu'on passe de la vue au template). +L'idée est d'ajouter une fonction à un module Python à notre projet, puis de le référencer parmi + les CONTEXT_PROCESSORS de nos paramètres généraux. Cette fonction doit peupler un dictionnaire, et les clés de ce dictionnaire seront + directement ajoutées à tout autre dictionnaire/contexte passé à une vue. Par exemple: + +(cf. https://stackoverflow.com/questions/60515797/default-context-for-all-pages-django[StackOverflow] - à retravailler) + +[source,python] +---- +from product.models import SubCategory, Category + + +def add_variable_to_context(request): + return { + 'subCategories': SubCategory.objects.order_by('id').all(), + 'categories': Category.objects.order_by("id").all(), + } +---- + +[source,python] +---- +'OPTIONS': { + 'context_processors': [ + .... + 'core.context_processors.add_variable_to_context', + .... + ], +}, +----