我在django模板中显示列表视图,我希望显示的第一个和最后一个元素使用与内部元素不同的CSS类。
我可以通过在python一侧切片并传入list_of_things
(切片,省略第一个和最后一个元素),first_in_list
和last_in_list
来做到这一点。我可以在模板一侧使用{% list_of_elements|slice %}
,{% list_of_elements|first %}
,{% list_of_elements|last %}
执行相同的操作。但两者似乎都不优雅,因为它们要求我重复三次html行(内部,第一和最后)。
我想要的是模板端测试,以便{% if ... %}
可以只更改部分。这存在吗?或者有更好的方法吗?
感谢。
答案 0 :(得分:4)
你可以内联你的if语句:
<ul>
{% for e in list_of_elements %}
<li class='{% if forloop.first %}first{% endif %}{% if forloop.last %}last{% endif %}'>{{ e }}</li>
{% endfor %}
</ul>
编辑:换行符以便于阅读:
<ul>
{% for e in list_of_elements %}
<li class='{% if forloop.first %}first{% endif %}
{% if forloop.last %}last{% endif %}'>
{{ e }}
</li>
{% endfor %}
</ul>
答案 1 :(得分:0)
您也可以只使用CSS,不使用Django或模板代码。
表格示例
tr:nth-last-child(1){ ⋮声明 }
列出示例
li:first-child { ⋮声明 }
等...