0

我想写一个这样的循环,这样我就可以在表格中展开表单字段。:

{% load widget_tweaks %}
{% load mathfilters %}
{% load get_range %}

{% for k in form|length|div:5|floatformat|add:1|get_range %}
    <tr>
        {% for field in form %}
        {% if forloop.counter >= k|mul:5 and forloop.counter <= k|mul:5|add:4 %}
            <th>{{ field.label_tag }}{{ field.errors }}</th>
        {% endif %}
        {% endfor %}
    </tr>
    <tr>
        {% for field in form %}
        {% if forloop.counter >= k|mul:5 and forloop.counter <= k|mul:5|add:4 %}
            <td>{{ field|add_class:"span4" }}</td>
        {% endif %}
        {% endfor %}
    </tr>
{% endfor %}

这不起作用,但因为上面的代码在form|length. 为了使它起作用,我需要在模板中获取表单中的字段数。有谁知道如何做到这一点?我已经搜索了所有内容,但找不到任何东西。以下不起作用:

form.len
form.length
form|length

谢谢!

4

4 回答 4

1

我真的不确定你在找什么,但听起来像这样:

{% for field in form %}
    <tr>
        {% if forloop.counter0|divisibleby:5 %}
            <th class="span4">{{ field.label_tag }}{{ field.errors }}</th>
        {% else %}
            <th>{{ field.label_tag }}{{ field.errors }}</th>
        {% endif %}
    </tr>
{% endfor%}
{% for field in form %}
    <tr>
        {% if forloop.counter0|divisibleby:5 %}
            <td>{{ field|add_class:"span4" }}</td>
        {% else %}
            <td>{{ field }}</td>
     </tr>
{% endfor %}
于 2013-08-31T07:54:19.257 回答
0

form.fields 我相信。

{% for field_name in form.fields %}
于 2013-08-31T07:32:08.093 回答
0

感谢您的建议 - 他们帮助了!这是最终对我有用的方法:

{% for field in form %}
    {% if forloop.counter0|divisibleby:5 %}
        <tr>
        {% for field in form %}
            {% if forloop.counter0 >= forloop.parentloop.counter0 and forloop.counter0 <= forloop.parentloop.counter0|add:4 %}
                <th>{{ field.label_tag }}{{ field.errors }} </th>
            {% endif %}
        {% endfor %}
        </tr>
        <tr>
        {% for field in form %}
            {% if forloop.counter0 >= forloop.parentloop.counter0 and forloop.counter0 <= forloop.parentloop.counter0|add:4 %}
                <td>{{ field }}</td>
            {% endif %}
        {% endfor %}
        </tr>
    {% endif %}
{% endfor %}
于 2013-08-31T11:03:04.347 回答
0

我不喜欢这段代码,但这是我的第一个想法。

{% for field in form %}

    {% if forloop.last %}
        {{ forloop.counter }}
    {% endif %}

{% enfor %}
于 2013-08-31T03:21:39.083 回答