2009-09-25 5 views
63

Ziemlich einfach. Ich habe eine Python-Liste, die ich an eine Django-Vorlage übergebe.Django Templating: wie zum Zugriff auf die Eigenschaften des ersten Elements in einer Liste

kann ich auf speziell auf das erste Element in dieser Liste mit

{{ thelist|first }} 

Aber ich möchte auch das Element eine Eigenschaft zugreifen ... ideal denken Sie würde es so aussehen würde:

{{ thelist|first.propertyName }} 

Aber ach, es tut es nicht.

Gibt es eine Vorlage Lösung dieses Problem, oder bin ich nur um mich gehen finden ein zusätzliches Template-Variable vorbei ...

Antwort

129

Sie ein Element in einer Liste über seine Indexnummer zugreifen kann. In einer Vorlage funktioniert dies das gleiche wie jede andere Eigenschaft Lookup:

{{ thelist.0.propertyName }} 
+0

Hmm aussehen. Dies funktioniert jedoch nicht mit einem inline_admin_formset. Ich denke, der Iterator funktioniert nicht so wie ich es erwarte. – Shayne

+0

Hallo Daniel, Könnten Sie meine Frage zu Vorlage/Ansicht http://StackOverflow.com/questions/34791375/How-To-use-Render-to-response-to-render-a-html-page-within- überprüfen Div-in-Django? – Sathish

+0

Dies ist viel besser als eine For-Schleife, um jede der Fehlermeldungen zu durchlaufen. Vielen Dank! – IIllIIll

25

Sie die with Template-Tag mit dem Filter first Vorlage kombinieren können die Eigenschaft zuzugreifen.

{% with thelist|first as first_object %} 
    {{ first_object.propertyname }} 
{% endwith %} 
+0

Bei einem Wörterbuch gibt zuerst ein Tupel für das Schlüssel/Wert-Paar zurück, es ist ein bisschen hässlich, aber ich habe ein anderes mit Anweisung hinzugefügt, um nur die Werte zu erhalten. {% mit der Liste | first als first_object%} {% mit first_object.1 als Objekt%} {{Objekt}} {% endwith%} {% endwith%} –

14

Wenn Sie ein ManyToMany Feld zugreifen möchten, denken Sie daran all hinzuzufügen, so wird es wie object.m2m_field.all.0.item_property

Verwandte Themen