[Django] Session Variabel im Template nutzen
Um die Session Variabel auch im Template direkt benutzen zu können gibt es zwei Varianten.
Variante 1:
Man fügt in der settings.py unter TEMPLATE_CONTEXT_PROCESSORS den Eintrag django.core.context_processors.request hinzu:
TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", 'django.core.context_processors.request', )
Dann kann man z. B. Session Daten aus dem request im Template mit
{{ request.session }}
benutzen.
Variante 2:
Alternativ kann man eine “schlankere” Variante benutzen falls man nicht alles bzw. nur ein Teil der request Daten benötigt – wie bei mir – nur die Session Variabel. Dazu erstellen wir im Projektverzeichnis die Datei context.py.
context.py:
def add_session(request):
return {'session': request.session}
settings.py:
TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.contrib.messages.context_processors.messages" "context.add_session", )
Und schon kann man im Template auf die Session Daten zugreifen.
{{ session.variablenname }}
Optimal ist diese Variante um ggf. eigene Daten per Default im Template verfügbar zu machen.
Letzte Kommentare