如何跳过逻辑并继续使用Django的HTML中的循环

时间:2019-02-15 23:34:50

标签: python html django

我四处张望,似乎无法找到正确的搜索短语甚至无法得到答案,我认为即使不是很容易,它也可能无法找到。

当forloop.counter ==特定数字时,我想有一种跳过方法,我认为这是可能的,但是还没有找到forloop.next之类的东西

{% for instance in questions %}
  <div>
    {% for field, value in instance.fields.items %}
      <div class="slidecontainer">
        Counter: {{ forloop.counter }}
        {% if forloop.counter == 1 %}
            ????
        {% endif %}
        <form name = "{{ field }}" id = "{{ field }}" >
          {{ value }}<br>
          <input class="slider" id="{{ field }}" input type="range" name="{{ field }}" min="0" max="10" value="5" step="1" onchange="showValue(this)" />
          <span id="range">5</span>
        </form>
      </div>
    {% endfor %}
  </div>
{% endfor %}

然后也是一个类似的问题,我想我可以这样做,但是有更好的方式编写它:

{% if forloop.counter == 1 or foorloop.counter == 4 or foorloop.counter == 12 or foorloop.counter == 20 %}  # and more, shortened
    # show nothing - the parts of loop I am wanting to skip
{% else %}
    # show what I want for the other iterations of loop
{% endif %}

然后我有一个类似的问题,是否可以确定字段类型?老实说,我并没有那么多看,但是自从我问了问题之后,我想我可以在这里问了。
如果有人知道一个不错的网站来提供有关{{..}}{%..%}东西可能带来的信息的信息,那将是很好的选择(这是Jinja吗?如果您不确切知道它是什么,很难查找它)

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要的是continue。继续可让您跳过该循环并转到下一个迭代。我不知道Django语法。我只是遵循其余格式。

{% for instance in questions %}
  <div>
    {% for field, value in instance.fields.items %}
      <div class="slidecontainer">
        Counter: {{ forloop.counter }}
        {% if forloop.counter == 1 %}
            {% continue %}
        {% endif %}
        <form name = "{{ field }}" id = "{{ field }}" >
          {{ value }}<br>
          <input class="slider" id="{{ field }}" input type="range" name="{{ field }}" min="0" max="10" value="5" step="1" onchange="showValue(this)" />
          <span id="range">5</span>
        </form>
      </div>
    {% endfor %}
  </div>
{% endfor %}

与另一个相同,前提是它处于for循环中。

{% if forloop.counter == 1 or foorloop.counter == 4 or foorloop.counter == 12 or foorloop.counter == 20 %}  # and more, shortened
    # show nothing - the parts of loop I am wanting to skip
    {% continue %}
{% else %}
    # show what I want for the other iterations of loop
{% endif %}