1

我是 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>
4

1 回答 1

2

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

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

就我个人而言,我从不在实际代码中使用 as_* 辅助方法,就我而言,它们仅对粗略的原型设计有用。

于 2009-04-21T15:46:06.720 回答