我需要在模板的while循环中放置一个计数器。所以我做了:
<tbody>
{% with count=1 %}
{% while count <={{orders_count}}: %}
{% for order in orders %}
<tr>
<td style="width:5%;"></td>
<td>{{count}}</td>
<td>{{order.name}}</td>
</tr>
{% count+=1 %}
{% endfor %}
{% endwhile %}
{% endwith %}
</tbody>
但最后我有以下错误:
Invalid block tag on line 216: 'while', expected 'endwith'. Did you forget to register or load this tag?
你while
在这里不需要循环,只需使用|slice
模板过滤器[Django-doc]即可:
<tbody>
{% for order in orders|slice:orders_count %}
<tr>
<td style="width:5%;"></td>
<td>{{ forloop.counter }}</td>
<td>{{ order.name }}</td>
</tr>
{% endfor %}
</tbody>
但是,切片等,确实没有真正属于的模板。通常,你可以在视图中执行此操作。
谢谢,但我认为
forloop.counter
是真的。@MJ:arrgghhh,打错了字,谢谢。
|slice:orders_count
与我们不输入模式的状态相比,模式是否会占用更多资源(RAM / CPU)?@MJ:不是很明显。但是什么
order_count
呢?如果只是其中的项目数orders
,则无论如何都不应将其传递给模板。