2009-09-25 8 views
63

Abbastanza semplice. Ho una lista di Python che sto passando ad un modello Django.Django Templating: come accedere alle proprietà del primo elemento in una lista

posso specificamente accedere al primo elemento in questo elenco utilizzando

{{ thelist|first }} 

Tuttavia, ho anche voglia di accedere a una proprietà di tale elemento ... idealmente si potrebbe pensare che sarebbe simile a questa:

{{ thelist|first.propertyName }} 

Ma purtroppo non è così.

C'è qualche soluzione modello per questo, o sto solo andando a trovare me stesso passando una variabile di modello in più ...

risposta

129

È possibile accedere a qualsiasi elemento in un elenco tramite il suo numero di indice. In un modello di questo funziona come qualsiasi altra ricerca immobili:

{{ thelist.0.propertyName }} 
+0

Hmm. questo però non funziona con un inline_admin_formset. Immagino che l'iteratore non funzioni come mi aspetto. – Shayne

+0

Ciao Daniel, Potresti controllare la mia domanda relativa al modello/vista http://stackoverflow.com/questions/34791375/how-to-use-render-to-response-to-render-a-html-page-within- div-in-django? – Sathish

+0

Questo è molto meglio di un ciclo 'for' per passare attraverso ciascuno dei messaggi di errore. Grazie! – IIllIIll

25

È possibile combinare il tag with modello con il filtro first modello per accedere alla proprietà.

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

Per un dizionario, restituisce prima una tupla per la coppia chiave/valore, è un po 'brutta ma ne ho aggiunta un'altra con l'istruzione per ottenere solo i valori. {% con thelist | first as first_object%} {% con first_object.1 come oggetto%} {{oggetto}} {% endwith%} {% endwith%} –

14

Se si sta cercando di accedere a un campo ManyToMany, ricordarsi di aggiungere all, in modo che sarà simile object.m2m_field.all.0.item_property

Problemi correlati