Django 模板table 自增序号列

发布时间 2023-08-07 17:09:53作者: TinaLi
第一种方法:
<style type="text/css">
table {
    counter-reset: tableCount;     
}
.counterCell:before {              
    content: counter(tableCount); 
    counter-increment: tableCount; 
}
</style>
标签中使用
<table>
  <tr>
    <td>Num</td>
    <td>Name</td>
  </tr>
  <tr>
    <td class="counterCell"></td>
    <td>this will be from database</td>
  </tr>
  <tr>
    <td class="counterCell"></td>
    <td>this will be from database</td>
  </tr>
</table>
第二种方法:

1、forloop.counter计数
想要在使用for...in range(...)结果不支持,因此这里改成使用{{ forloop.counter }}。

{{ forloop.counter0 }}:以0开始的循环计数。
{{ forloop.counter }}:以1开始的循环计数。

{{ forloop.revcounter0 }}:以0结尾的倒序计数,先遍历元素个数,然后倒序计数。
{{ forloop.revcounter }}:以1结尾的倒序计数,先遍历元素个数,然后倒序计数。

forloop.first:第一个为True,其余为Flase。
forloop.last:最后一个为True,其余为Flase。

示例:

<tbody>
{% for created_item in created_items %}
<tr>
<td style="text-align:center;">{{created_item.item_name}}</td> <!--名称-->
<td style="text-align:center;">{{created_item.emergency_signal}}</td> <!--紧急信号-->
<td style="text-align:center;">{{ forloop.counter0 }}</td> <!--计数-->
</tr>
{% endfor %}
</tbody>

注意:第二种方法,如遇判断语句序号会跳号显示。第一种则不会。