如何在Django表单中的几列中组织复选框

时间:2009-04-21 08:12:19

标签: django django-forms

我是Django的新手和一般的网络开发所以请耐心等待一个非常愚蠢的问题:)

我有一个从模型生成的表单,在这个表单中我有大约20个复选框。现在它们在一个长列中对齐,从UI的角度看它看起来不是很好。我希望将此列拆分为多个,但仍然可以从模型中自动生成此表单。你建议我做什么?

在生成的HTML个别复选框中,如下所示:

<li><label for="id_boxes_0"><input type="checkbox" name="boxes" value="1" id="id_boxes_0" /> some name</label></li>

1 个答案:

答案 0 :(得分:2)

您不需要在Python代码中更改任何内容,但是您需要在模板中布局表单而不是使用{{form.as_ul}}。您可以遍历表单以获取字段。对于最简单的方法,类似下面的内容可以将20个字段放在10列的两列中:

{% for field in form %}
  {% ifequal forloop.counter 11 %}</ul><ul>{% endifequal %}
  <li>{{ field }}</li>
{% endfor %}

我个人从不在实际代码中使用as_ *辅助方法,只要我担心它们只对粗略原型有用。