Zugriff auf Wörterbuchwerte mit dynamischen Schlüsseln in Django-Vorlagen
Django-Vorlagen bieten eine bequeme Möglichkeit, mit Wörterbüchern zu arbeiten, und ermöglichen Entwicklern den Zugriff auf Werte mithilfe von die Punktnotation (z. B. {{ mydict.key1}}). Wenn der Schlüssel jedoch eine Schleifenvariable ist, wie etwa item.NAME im bereitgestellten Beispiel, wird der direkte Zugriff auf den Wörterbuchwert problematisch.
Lösung: Verwendung benutzerdefinierter Vorlagenfilter
Um diese Herausforderung zu meistern, bietet Django die Möglichkeit, benutzerdefinierte Vorlagenfilter zu definieren, die die Funktionalität des Vorlagensystems erweitern. Hier ist ein Filter, mit dem Sie Wörterbuchwerte mit variablen Schlüsseln nachschlagen können:
# import the necessary modules from django.template.defaulttags import register # define the custom template filter @register.filter def get_item(dictionary, key): return dictionary.get(key)
Der get_item-Filter verwendet die get-Methode, um den Wert abzurufen, der dem bereitgestellten Schlüssel aus dem angegebenen Wörterbuch entspricht. Wenn der Schlüssel nicht im Wörterbuch gefunden wird, gibt get_item None zurück, anstatt einen KeyError auszulösen.
Verwendung in Vorlagen
Um den benutzerdefinierten Filter zu verwenden, leiten Sie ihn einfach weiter Wörterbuch und den Variablenschlüssel dazu, wie unten gezeigt:
{{ mydict|get_item:item.NAME }}
In diesem Beispiel ist mydict das Wörterbuch, das die enthält Schlüssel-Wert-Paare und item.NAME ist der variable Schlüssel. Der get_item-Filter sucht den Wert in mydict mithilfe des Schlüssels item.NAME und gibt den entsprechenden Wert zurück.
Das obige ist der detaillierte Inhalt vonWie greife ich mit dynamischen Schlüsseln in Django-Vorlagen auf Wörterbuchwerte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!