我有一个Django模板接收上下文变量browsers
中的对象列表。我可以访问Django模板列表中第一个对象的属性吗?
我要选择列表中的第一个对象,其属性的访问之一,像这样:
<a class="{{ browsers|first.classified_name }}" href="">{{ browsers|first }}</a>
不过,我得到相关的属性选择.classified_name
语法错误。
有什么办法可以选择列表中的第一个对象的属性?
我有一个Django模板接收上下文变量browsers
中的对象列表。我可以访问Django模板列表中第一个对象的属性吗?
我要选择列表中的第一个对象,其属性的访问之一,像这样:
<a class="{{ browsers|first.classified_name }}" href="">{{ browsers|first }}</a>
不过,我得到相关的属性选择.classified_name
语法错误。
有什么办法可以选择列表中的第一个对象的属性?
可以使用with-templatetag:
{% with browsers|first as first_browser %}
{{ first_browser.classified_name }}
{% endwith %}
@ lazerscience的答案是正确的。另一种方法是直接使用索引。对于例如
{% with browsers.0 as first_browser %}
<a class="{{ first_browser.classified_name }}" href="">{{ first_browser }}</a>
{% endwith %}
或者,如果你通过使用列表中的{% for %}
标签循环,您可以忽略每一个对象除了第一个使用the forloop.first
variable,例如
{% for browser in browsers %}
{% if forloop.first %}
<a class="{{ browser.classified_name }}" href="">{{ browser }}</a>
{% endif %}
{% endfor %}
虽然这可能不太明确,效率也不高。
我更喜欢这个,因为'browsers.0.classified_name'也可以完成 – ratskin 2018-03-06 16:02:16