Das mag einfach sein, aber ich sah mich um und konnte keine Antwort finden. Wie kann ein einzelnes Element in einer Liste aus einer Django-Vorlage am besten referenziert werden?
Mit anderen Worten, wie mache ich das Äquivalent {{ data[0] }}
innerhalb der Vorlagensprache?
Vielen Dank.
python
django
django-templates
user456584
quelle
quelle
{{ data.foo }}
, wofoo
sich eine Variable mit einem Indexwert und nicht einem Eigenschaftsnamen befindet.Ein besserer Weg: Benutzerdefinierter Vorlagenfilter: https://docs.djangoproject.com/de/dev/howto/custom-template-tags/
wie get my_list [x] in Vorlagen:
in Vorlage
templatetags / index.py
Wenn
my_list = [['a','b','c'], ['d','e','f']]
, können Sie{{ my_list|index:x|index:y }}
in Vorlage verwenden, um zu erhaltenmy_list[x][y]
Es funktioniert gut mit "für"
Getestet und funktioniert gut ^ _ ^
quelle
{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
{{ data.0 }}
sollte arbeiten.data.obj
Angenommen , Sie haben Django-Versuche geschriebendata.obj
unddata.obj()
. Wenn sie nicht funktionieren, versucht esdata["obj"]
. In Ihrem Falldata[0]
kann geschrieben werden als{{ data.0 }}
. Ich empfehle Ihnen jedoch,data[0]
die Ansicht aufzurufen und als separate Variable zu senden.quelle
@ jennifer06262016, Sie können definitiv einen weiteren Filter hinzufügen, um die Objekte in einem Django-Queryset zurückzugeben.
In diesem Fall würden Sie so etwas wie {{Queryset | index: x | get_item}} in Ihre Vorlage eingeben, um auf ein Wörterbuchobjekt zuzugreifen. Für mich geht das.
quelle