如何使用WTForms、Jinja和;python

如何使用WTForms、Jinja和;python,python,jinja2,wtforms,Python,Jinja2,Wtforms,我用Jinja定义了一个HTML模板,其中我定义了三(3)个同名的文本字段。然后在后端使用get_all方法收集所有值 然后为了添加表单验证等,我添加了WTForms库。然后我将表单定义为: class RoleForm(BaseForm): name = fields.TextField(_('Name')) 在HTML页面中,我对这个元素进行了三(3)次渲染 现在,当我提交表单并且验证失败时,我使用表单作为输入重新呈现模板。但是每个元素都有我输入的值,所有文本字段都有第一个文本字段

我用Jinja定义了一个HTML模板,其中我定义了三(3)个同名的文本字段。然后在后端使用get_all方法收集所有值

然后为了添加表单验证等,我添加了WTForms库。然后我将表单定义为:

class RoleForm(BaseForm):
    name = fields.TextField(_('Name'))
在HTML页面中,我对这个元素进行了三(3)次渲染

现在,当我提交表单并且验证失败时,我使用表单作为输入重新呈现模板。但是每个元素都有我输入的值,所有文本字段都有第一个文本字段的值

此外,如果验证没有问题,我将使用form.name.data,它不会提供三个文本字段中的所有数据,而只提供第一个文本字段

你知道我如何处理这种情况吗

提前谢谢

您正在寻找现场机柜:

class RoleForm(BaseForm):
    name = fields.FieldList(fields.TextField(_('Name')), min_entries=3)

您需要做的是创建HTML
input
元素,例如:

<input name="row-{{ loop.index0 }}" type="checkbox">

实际上,这不会生成同名的输入字段。它将生成3个名称为:name-0、name-1、name2的条目。@Tarantula-当我阅读OP时,所需的行为是保留每个文本框的状态,而不是有三个同名的文本框:-)
<input name="row-0" type="checkbox">
<input name="row-1" type="checkbox">
class ListForm(Form):
    row = FieldList(fields.TextField('Row'))