Django: HTML中的自动编号



我目前试图找出如何在我的html模板自动编号我的表。我似乎不能在数据库中使用id,因为它不是自动递增的,因为它是用户依赖于他们看到的,所以用户会看到一个不正确的顺序。例如,表的编号不是1. 2. 3.,而是4. 8. 9.

最初我已经尝试过这个,这给了我错误的结果如上所述:

template.html

{% for item in x%}   
<tr>                    
<td>{{ item.id }}</td>
<td>{{ item.a}}</td>
<td>{{ item.b}}</td>
<td>{{ item.c}}</td>
</tr>

我已经尝试了一些与while循环:

template.html

{% for item in x %}
{% while z<= item %}
{% z=z+1 %}
<tr>
<td>{{ z }}</td>
<td>{{ item.a}}</td>
<td>{{ item.b}}</td>
<td>{{ item.c }}</td>
</tr>
{% endwhile %}
{% endfor %}

供您参考,这些模板参考的模型:

models.py

from django.db import models
from django.conf import settings
class x(models.Model):
creation_date = models.DateTimeField(auto_now = True)
a = models.CharField(max_length=50)
b = models.CharField(max_length=50)
c = models.CharField(max_length=50)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

提前感谢您的帮助!

可以使用forloop.counter来计算循环的迭代次数。试试这个:

{% for item in x %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ item.a}}</td>
<td>{{ item.b}}</td>
<td>{{ item.c}}</td>
</tr>
{% endfor %}

参考:for模板标签- Django Docs

最新更新