Heim > Backend-Entwicklung > Python-Tutorial > Wie greife ich mithilfe von Schleifenvariablen als Schlüssel in Django-Vorlagen auf Wörterbuchwerte zu?

Wie greife ich mithilfe von Schleifenvariablen als Schlüssel in Django-Vorlagen auf Wörterbuchwerte zu?

DDD
Freigeben: 2024-12-02 21:26:12
Original
478 Leute haben es durchsucht

How to Access Dictionary Values Using Loop Variables as Keys in Django Templates?

Django Template Variable Dictionary Value Lookup

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 %}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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 }}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage