Как я могу использовать разрыв и продолжить в шаблонах Django? - PullRequest
17 голосов
/ 07 февраля 2011

Я хочу поставить break и продолжить в моем коде, но это не работает в шаблоне Django.Как я могу использовать продолжить и прервать с помощью шаблона Django для цикла.Вот пример:

{% 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 %}

Ответы [ 3 ]

39 голосов
/ 28 ноября 2011

Django не поддерживает его естественным образом.

Вы можете реализовать forloop | continue и forloop | break с помощью пользовательских фильтров.

http://djangosnippets.org/snippets/2093/

28 голосов
/ 07 февраля 2011

Циклы For в шаблонах Django отличаются от простых циклов For Python, поэтому continue и break в них работать не будут.Убедитесь сами в Django документах , там нет шаблонов break или continue.Учитывая общую позицию Keep-It-Simple-Stupid в шаблонном синтаксисе Django, вам, вероятно, придется найти другой способ выполнить то, что вам нужно.

1 голос
/ 06 июля 2018

В большинстве случаев нет необходимости в пользовательских тегах-шаблонах, это просто:

продолжить :

{% for each in iterable %}
  {% if conditions_for_continue %}
       <!-- continue -->
  {% else %}
       ... code ..
  {% endif %}
{% endfor %}

break использоватьта же идея, но с более широкой областью действия:

{% set stop_loop="" %}
{% for each in iterable %}
  {% if stop_loop %}{% else %}
       ... code ..
       under some condition {% set stop_loop="true" %}
       ... code ..
  {% endif %}
{% endfor %}

, если вы принимаете итерацию больше, чем необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...