2009-09-25 71 views
63

非常簡單。我有一個Python列表,我傳遞給一個Django模板。Django模板:如何訪問列表中第一項的屬性

我可以用

{{ thelist|first }} 

不過,我也想訪問該項目的某種屬性訪問的第一個項目在此列表...理想,你會覺得它應該是這樣的:

{{ thelist|first.propertyName }} 

但是,唉,它沒有。

有任何模板解決這個,還是我只是去發現自己通過一個額外的模板變量...

回答

129

你可以通過它的索引號列表訪問任何項目。在模板這個工程與任何其他財產的查找:

{{ thelist.0.propertyName }} 
+0

嗯。但這不適用於inline_admin_formset。我猜迭代器不符合我的期望。 – Shayne 2015-02-06 06:59:14

+0

嗨丹尼爾,你能檢查我的問題相關的模板/視圖http://stackoverflow.com/questions/34791375/how-to-use-render-to-response-to-render-a-html-page-within- div-in-django? – Sathish 2016-01-14 15:35:20

+0

這比通過每個錯誤消息的for循環要好得多。謝謝! – IIllIIll 2016-01-19 12:54:52

25

您可以用first模板過濾器with模板標籤相結合來訪問屬性。

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

對於字典,首先返回鍵/值對的元組,但有點難看,但我添加了另一個語句來獲取值。 {%with thelist | first as first_object%} {%with first_object.1 as object%} {{object}} {%endwith%} {%endwith%} – 2014-08-04 16:03:26

14

如果你試圖訪問一個多對多場,記得要加all,所以它看起來像object.m2m_field.all.0.item_property