Accueil > Informatique > Django : utiliser les variables de session depuis les templates

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 }}

Categories: Informatique Tags: .: django
  1. thierry.chich
    20/03/2010 à 16:48 | #1

    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

  2. Marco
    21/03/2010 à 17:24 | #2

    Ok merci pour l’info !

  1. Pas encore de trackbacks