我目前试图找出如何在我的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