0 Tage Serie
python / intermediate
Snippet

Django Context Processor für globale Template-Variablen

Context Processor sind Funktionen, die vor jedem Template-Rendering ausgeführt werden und fügen dem Template-Kontext global Variablen hinzu. Dies ist ideal für Daten, die über mehrere Seiten benötigt werden, wie Navigationskategorien, Benutzer-Benachrichtigungen oder Warenkorb-Inhalte.

snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
# myapp/context_processors.py
from .models import Category
def categories_processor(request):
return {
'all_categories': Category.objects.all()
}
# In settings.py add to TEMPLATES configuration:
# 'context_processors': [
# 'myapp.context_processors.categories_processor',
# ]
django
Erklärung
1
def categories_processor(request):
Funktion empfängt das aktuelle Request-Objekt und muss ein Dictionary von Template-Variablen zurückgeben
2
'all_categories': Category.objects.all()
Abfrage aller Kategorien aus der Datenbank, um sie in jedem Template verfügbar zu machen
3
TEMPLATES Konfiguration
Registriere den Context Processor in Django-Einstellungen, um ihn projektübergreifend zu aktivieren