2009-09-25 72 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