这是我的index2.html
我试图显示可以输入第二个元素的form2数据的区域。 form2由数据库中的字段组成。
<h1>Fill the form below</h1>
<form method="post">
{% csrf_token %}
<h1>Enter second area</h1>
{{ form2[1] }}<br><br>
<input type="submit" value="Submit file1"/>
</form>
在form2中显示所有字段的输入字段(请参阅下文)工作正常。
<h1>Fill the form below</h1>
<form method="post">
{% csrf_token %}
{% for field in form2 %}
{{field}}<br><br>
{% endfor %}
<input type="submit" value="Submit file1"/>
</form>
答案 0 :(得分:0)
您不能按索引访问Django表单的字段,必须使用键。因此,您需要执行以下操作:
{{ form2.myField }}
{{ form2.myField2 }}
尝试按索引访问表单字段将不起作用:
{{ form2[1] }} // Incorrect syntax
{{ form2.1 }} // correct syntax but you can access fields using index, must use key.
答案 1 :(得分:0)
form2由数据库中的字段组成
从您发布的代码来看,form2
确实不是“由数据库中的字段组成”,而是Django Form
(最终是ModelForm
,但这是与此无关)。表单确实是可迭代的,但是在Python中,很多事情都是可迭代的,它们不是列表或不支持索引访问-字典是一个非常明显的例子,表单也很明显:在表单上进行迭代会在表单的绑定字段上进行迭代。
如果您要从表单访问特定字段,则必须为其命名,因此假设您表单的字段名为“ area2”(而且您没有发布适当的MCVE,因此我们不得不假设很多),这将是form2.area2
。