用于2D数组条目的Django网格表单

时间:2012-12-30 20:45:46

标签: python django django-forms

我有两个列表(这些只是小例子):

Attackers = ['John', 'Mary']
Defenders = ['Steve', 'Bill', 'Dave']

我的目标是使用适当数量的输入(复选框)创建一个2D网格表单,表示两个列表之间的所有可能关系。

我很难在模型和视图级别处理如何做到这一点。我查看了内联表单集和模型表单集,但我不确定如何继续。

编辑:

{% for at in atts %}
    {% for def in defs %}
        <input type="text" name="{{ at }}_{{ def }}" value="{{ at }}_{{ def }}" >
    {% endfor %}
    <br>
{% endfor %}

1 个答案:

答案 0 :(得分:1)

为每对创建一个复选框。在表单中以正确的顺序放置这些对(假设HTML支持从左到右,然后向下布局),并在模板中正确显示它。

要创建复选框:您的表单中包含一个名为fields的字段集合,这是一个dict映射字段名称到字段对象。您将需要以编程方式填充此。如果你破解了django中的表单代码/检查shell中的表单对象,你会看到(除非我的记忆错误)还有一个字段列表或元组,它控制着迭代的顺序。您将需要按正确的顺序填充此内容,如上所述。

要显示:迭代模板中的表单。您需要在表单中包含一些信息,或以其他方式传递给模板,以描述网格的形状,因此您的模板代码可以找出放置行边界的位置。