嗨Stackoverflow人,
我通过循环显示一个大表单:
<table>
{% for field in projectDetailForm %}
<tr>
<td> {{ field.label_tag }} </td>
<td> {{ field }} </td>
</tr>
{% endfor %}
</table>
我想在几个表单字段之后用表单字段中断表格以显示更多解释。由于表单相当大(20个字段),我想避免每个表单字段的“手动显示”(如here所述)。
有没有办法在循环中显示文本表单,在第x个循环之后或在特定表单字段之后?
感谢您的建议!
答案 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链接。