碰到一个奇葩的前端设计,下拉列表切换不同的面板,用不同的面板来对同一个单选字段下的项进行分类。比如前3项在第一个 panel,随后的2项在第二个 panel,最后3项在第三个 panel。

这样一来就需要用 for 循环对这个项进行迭代,Django 手册有介绍 {{ forloop.counter }},把它扔进 for 循环里,会帮助计数,从 1 开始,如果想从 0 开始,可以使用 {{ forloop.counter0 }}

如下,从第8项开始渲染:

{% for i in form.topic %}
    {% if forloop.counter > 7 %}
    <p>
        <label for="{{ i.data.attrs.id }}">
            <input type="radio" name="{{ i.data.name }}" id="{{ i.data.attrs.id }}"
                class="uk-radio">
            {{ i.data.label }}
        </label>
    </p>
    {% endif %}
{% endfor %}

Reference