无法解析剩余的内容:来自“ form2 [1]”的“ [1]”

时间:2018-10-03 13:56:37

标签: python django

这是我的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>

2 个答案:

答案 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