In Django-Vorlagen ist der Zugriff auf Wörterbuchwerte mithilfe der Syntax {{ mydict.key1 }} oder {{ mydict.key2 } unkompliziert. }. Beim Umgang mit Schleifenvariablen als Wörterbuchschlüssel schlägt der herkömmliche Ansatz jedoch fehl.
Stellen Sie sich das folgende Szenario vor:
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # This fails {% endfor %}
Im obigen Code dient item.NAME als Schleifenvariable mit ein Attribut NAME. Allerdings liefert mydict.item.NAME nicht das gewünschte Ergebnis.
Um diese Herausforderung zu meistern, kann ein benutzerdefinierter Vorlagenfilter erstellt werden:
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)
Der get_item-Filter verwendet die .get ()-Methode zum Abrufen des mit dem angegebenen Schlüssel verknüpften Werts. Dadurch wird sichergestellt, dass bei Fehlen des Schlüssels None zurückgegeben wird, anstatt einen KeyError auszulösen.
Um den Filter zu verwenden, ändern Sie den Vorlagencode wie folgt:
{{ mydict|get_item:item.NAME }}
Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von Schleifenvariablen als Schlüssel in Django-Vorlagen auf Wörterbuchwerte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!