我想在我的代码中放置并继续,但它在Django模板中不起作用。如何使用Django模板for循环使用continue和break。这是一个例子:
{% for i in i_range %}
{% for frequency in patient_meds.frequency %}
{% ifequal frequency i %}
<td class="nopad"><input type="checkbox" name="frequency-1" value="{{ i }}" checked/> {{ i }} AM</td>
{{ forloop.parentloop|continue }} ////// It doesn't work
{ continue } ////// It also doesn't work
{% endifequal %}
{% endfor%}
<td class="nopad"><input type="checkbox" name="frequency-1" value="{{ i }}"/> {{ i }} AM</td>
{% endfor %}
答案 0 :(得分:39)
答案 1 :(得分:28)
Django模板中的For循环与纯Python for循环不同,因此continue
和break
将不起作用。在Django docs中自行查看,没有break
或continue
模板标记。鉴于Keep-It-Simple-Stupid在Django模板语法中的总体位置,您可能必须找到另一种方法来完成您的需要。
答案 2 :(得分:1)
在大多数情况下,不需要自定义模板标签,这很容易:
继续:
{% for each in iterable %}
{% if conditions_for_continue %}
<!-- continue -->
{% else %}
... code ..
{% endif %}
{% endfor %}
突破使用相同的想法,但范围更广:
{% set stop_loop="" %}
{% for each in iterable %}
{% if stop_loop %}{% else %}
... code ..
under some condition {% set stop_loop="true" %}
... code ..
{% endif %}
{% endfor %}
如果您接受超出需要的迭代。