Django:在表单字段之间显示文本

时间:2011-09-01 10:57:24

标签: django forms loops field

嗨Stackoverflow人,

我通过循环显示一个大表单:

    <table>
    {% for field in projectDetailForm %}
    <tr>
        <td> {{ field.label_tag }} </td>
        <td> {{ field }} </td>
    </tr>
    {% endfor %}
    </table>  

我想在几个表单字段之后用表单字段中断表格以显示更多解释。由于表单相当大(20个字段),我想避免每个表单字段的“手动显示”(如here所述)。

有没有办法在循环中显示文本表单,在第x个循环之后或在特定表单字段之后?

感谢您的建议!

3 个答案:

答案 0 :(得分:0)

我要在表单初始化时使用forloop.counter或在表单字段上设置自定义属性,并以与显示field.label_tag相同的方式显示属性

答案 1 :(得分:0)

您可以向表单添加方法,该方法将按部分返回字段。类似的东西:

def by_5(self):
    iterable = iter(self)
    zipped = zip(*([iterable] * 5)) # replace 5 by desired n
    for z in zipped:
        yield z
    remained = list(iterable)
    if remained:
        yield remained

然后在模板中:

<table>
{% for fields in projectDetailForm.by_5 %}
    {% for field in fields %}
    <tr>
        <td> {{ field.label_tag }} </td>
        <td> {{ field }} </td>
    </tr> 
    {% endfor %}
    <tr><td colspan="2">Hi there!</td></tr>
{% endfor %}
</table>  

答案 2 :(得分:-1)

您可以使用{{ forloop.counter }}{{ forloop.counter0 }}(分别为1个索引和0个索引)。

有关更多信息,请查看此Djangobook链接。