我有两个列表(这些只是小例子):
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 %}
答案 0 :(得分:1)
为每对创建一个复选框。在表单中以正确的顺序放置这些对(假设HTML支持从左到右,然后向下布局),并在模板中正确显示它。
要创建复选框:您的表单中包含一个名为fields的字段集合,这是一个dict映射字段名称到字段对象。您将需要以编程方式填充此。如果你破解了django中的表单代码/检查shell中的表单对象,你会看到(除非我的记忆错误)还有一个字段列表或元组,它控制着迭代的顺序。您将需要按正确的顺序填充此内容,如上所述。
要显示:迭代模板中的表单。您需要在表单中包含一些信息,或以其他方式传递给模板,以描述网格的形状,因此您的模板代码可以找出放置行边界的位置。