我有一个Django模板,它接收上下文变量browsers
中的对象列表。
我想选择列表中的第一个对象,并访问其中一个属性,如下所示:
<a class="{{ browsers|first.classified_name }}" href="">{{ browsers|first }}</a>
但是,我收到与属性选择.classified_name
相关的语法错误。
有没有办法可以选择列表中第一个对象的属性?
答案 0 :(得分:10)
您可以使用with-templatetag:
{% with browsers|first as first_browser %}
{{ first_browser.classified_name }}
{% endwith %}
答案 1 :(得分:5)
@ lazerscience的回答是正确的。另一种实现此目的的方法是直接使用索引。对于例如
{% with browsers.0 as first_browser %}
<a class="{{ first_browser.classified_name }}" href="">{{ first_browser }}</a>
{% endwith %}
答案 2 :(得分:4)
或者,如果您使用{% for %}
标记循环浏览列表,则可以使用the forloop.first
variable忽略第一个对象,例如
{% for browser in browsers %}
{% if forloop.first %}
<a class="{{ browser.classified_name }}" href="">{{ browser }}</a>
{% endif %}
{% endfor %}
尽管如此,这可能既不那么清晰也不那么有效。