2010-09-30 131 views
3

我有一個Django模板接收上下文變量browsers中的對象列表。我可以訪問Django模板列表中第一個對象的屬性嗎?

我要選擇列表中的第一個對象,其屬性的訪問之一,像這樣:

<a class="{{ browsers|first.classified_name }}" href="">{{ browsers|first }}</a> 

不過,我得到相關的屬性選擇.classified_name語法錯誤。

有什麼辦法可以選擇列表中的第一個對象的屬性?

回答

8

可以使用with-templatetag

{% with browsers|first as first_browser %} 
    {{ first_browser.classified_name }} 
{% endwith %} 
5

@ lazerscience的答案是正確的。另一種方法是直接使用索引。對於例如

{% with browsers.0 as first_browser %} 
    <a class="{{ first_browser.classified_name }}" href="">{{ first_browser }}</a> 
{% endwith %} 
+0

我更喜歡這個,因爲'browsers.0.classified_name'也可以完成 – ratskin 2018-03-06 16:02:16

4

或者,如果你通過使用列表中的{% for %}標籤循環,您可以忽略每一個對象除了第一個使用the forloop.first variable,例如

{% for browser in browsers %} 
    {% if forloop.first %} 
     <a class="{{ browser.classified_name }}" href="">{{ browser }}</a> 
    {% endif %} 
{% endfor %} 

雖然這可能不太明確,效率也不高。

相關問題