我正在使用django构建一个电子商务网站,我正在处理列出所有订单的页面。我想设置一个计数器,将订单从1编号为任何数字。但是,如果我设置一个for循环来执行此操作,那么每次跳回到原始的forloop时,数字是否会重置?
现在我正在使用主键对所有订单进行编号,但我想将其更改为1-whatever。
<!DOCTYPE html>
<html>
<body>
Order page
{% for location, orders in orderlocations.items %}
<table>
<tr>
<td>#</td>
<td>Time</td>
<td>Location</td>
<td>Name</td>
<td>Email</td>
<td>Phone</td>
<td>Order</td>
<td>Order Quantity</td>
<td>Delivered</td>
</tr>
{% for ord in orders %}
{% for food in ord.orderitem_set.all %}
<tr>
{% if forloop.counter == 1 %}
<td>{{ord.pk}}</td>
<td>{{ord.time}}</td>
<td>{{ord.location}}</td>
<td>{{ord.user.first_name}}</td>
<td>{{ord.user.email}}</td>
<td>{{ord.user.get_profile.phone}}</td>
{% else %}
<td colspan="4"></td>
{% endif %}
<td>{{food.name}}</td>
<td>{{food.quantity}}</td>
<td>
{% if forloop.counter == 1 %}
<form action="" method="POST">
<input type="hidden" name="order-id" value="{{ ord.pk }}"/>
<input type="hidden" name="action=" value="toggledelivery"/>
<button type="button">{% if not ord.delivered %}Not {% endif %}Delivered</button>
</form>
{% endif %}
</td>
</tr>
{% endfor %}
{% endfor %}
</table>
{% endfor %}
</body>
</html>
答案 0 :(得分:3)
而不是<td>{{ord.pk}}</td>
使用<td>{{ forloop.counter }}</td>
。
for循环每个都有自己的范围。如果你想要外环的计数器,你可以使用forloop.parentloop.counter