Django : utiliser les variables de session depuis les templates
Afin de pouvoir récupérer directement le contenu d’une variable de session dans un template Django, deux conditions sont nécessaires :
1) Dans votre settings.py, le processeur de contexte de template django.core.context_processors.request doit être présent en plus de ceux définis par défaut, ce qui donne :
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
)
2) Dans la vue (views.py), il faudra passer un objet de type RequestContext si vous utilisez la méthode render_to_response, ce qui donne par exemple :
...
request.session['hello'] = 'world !!!'
return render_to_response('index.html', context_instance=RequestContext
(request))
3) Vous accédez à votre variable de session, dans votre template de cette façon :
value : {{ request.session.hello }}
Merci.
Je cherchais, et je suis tombé ici. Ca marche pile comme je le voulais.
Juste au passage, il est possible d’échanger le
render_to_response(‘index.html’, context_instance=RequestContext
(request)),
un peu lourd, pour
direct_to_template(request,’index.html’)
que l’on importe depuis django.views.generic.simple
Ok merci pour l’info !