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
1
2
3
4
5
6
7
8
9
10
11
12
# myapp/context_processors.pyfrom .models import Categorydef 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