Context Processor Django

Les context processor vous permet d'enrichir votre contexte pour vos templates.

Afficher l'adresse IP du client

Nous voulons récupérer au niveau du template l'adresse ip de l'utilisateur à tout moment:

backoffice/context_processor.py

def get_ip(request):
   return {'ip' : request.META['REMOTE_ADDR']}

Nous indiquons ensuite à Django qu'il doit prendre en compte notre fonction:

eboutique/settings.py

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
 
TEMPLATE_CONTEXT_PROCESSORS = TEMPLATE_CONTEXT_PROCESSORS + (
    "backoffice.context_processors.get_ip",
)

Et enfin si je veux récupérer la valeur IP au niveau du template:

backoffice/templates/test.html

Votre addresse IP: {{ip}}

Récupérer l'uri en cours dans votre template

Il est possbile de récupérer l'URI en cours dans votre template en faisant la manipulation suivante:

eboutique/settings.py

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request',
)

Les données de l'objet request sera disponible dans votre template. Vous pouvez par exemple afficher l'URI en cours en appellant {{request.path}}