提问人:NicoCaldo 提问时间:8/30/2023 最后编辑:marc_sNicoCaldo 更新时间:9/8/2023 访问量:20
DJango 模板中的自定义变量索引
Custom variable index inside a DJango template
问:
我在 Django 中有一个模板,它是由 for 循环生成的,例如
{% for test in test_list %}
<!-- dome code here -->
{% if not test.testInPausa %}
<div class="progress-wrapper-{{ forloop.counter0 }}">
<div
id="progress-bar-{{ forloop.counter0 }}"
class="progress-bar-{{ forloop.counter0 }} progress-bar-striped"
>
</div>
</div>
<div id="progress-bar-message-{{ forloop.counter0 }}">
Waiting for progress to start...
</div>
{% endif %} {% endfor %}
现在,我想计算代码输入 if 语句的时间。
我想这样做是因为,目前,div 中的 id 和 class 由 forloop.counter 索引,因为它并不总是输入 if 语句,所以计算每个 for 循环,使 id 和类跳转索引。
有没有办法拥有一些东西
{% my_index = 0 %}
{% for test in test_list %}
<!-- dome code here -->
{% if not test.testInPausa %}
<div class="progress-wrapper-{{ my_index }}">
<div
id="progress-bar-{{ my_index }}"
class="progress-bar-{{ my_index }} progress-bar-striped"
>
</div>
</div>
<div id="progress-bar-message-{{ my_index }}">
Waiting for progress to start...
</div>
{% my_index++ %}
{% endif %} {% endfor %}
我已经尝试了该语句和内置的添加过滤器,但没有运气with
{% with count=0 %}
{% for test in test_list %}
<!-- dome code here -->
{% if not test.testInPausa %}
<div class="progress-wrapper-{{ my_index }}">
<div
id="progress-bar-{{ my_index }}"
class="progress-bar-{{ my_index }} progress-bar-striped"
>
</div>
</div>
<div id="progress-bar-message-{{ my_index }}">
Waiting for progress to start...
</div>
{{ count|add:"1" }} {% endif %} {% endfor %} {% endwith %}
答:
0赞
michjnich
8/30/2023
#1
使用而不是试图维护自己的。forloop.counter
https://docs.djangoproject.com/en/4.2/ref/templates/builtins/#for
编辑:在视图中执行此操作,以便仅包含要迭代的内容。这不是模板中应该有的逻辑。然后使用if
test_list
forloop.counter
评论
0赞
NicoCaldo
8/30/2023
如前所述,我需要计算周期进入 的时间,而不是总 o 周期数if
0赞
michjnich
8/30/2023
该逻辑不属于模板。
0赞
NicoCaldo
8/30/2023
根据 Django 文档,它也应该在模板中完成
0赞
michjnich
8/30/2023
我想你已经发现了为什么不应该在模板中这样做,我建议不要这样做。只需将正确的数据发送到模板即可开始 - 在视图中进行筛选。我怀疑 django 文档会告诉你做你正在做的事情,因为它是显示层中的业务逻辑。
0赞
NicoCaldo
9/13/2023
唯一的解决方案是在后端详细说明
评论