【发布时间】:2013-05-16 18:59:55
【问题描述】:
我有一个看起来像这样的表单:
<form method="post">
<input id="1" name="people" type="checkbox" value="1"/>
<label for="1">Paul</label>
<input id="2" name="people" type="checkbox" value="2"/>
<label for="2">Elizabeth</label>
<input type="submit"/>
</form>
提交此表单时,我想验证用户是否至少检查了一个人。请注意,我不想使用name"person-0" 和name="person-1",我实际上想使用name="people" 作为我的对象的名称。
我将使用类似的东西创建我的表单...
class MyForm(Form):
some_field = fields.TextField(u'Some Field', [validators.required()])
some_option = fields.BooleanField(u'Some Option')
people = # What to put here?
那么,我可以为“人员”字段使用什么类型的字段?
我认为我不能使用 FieldList,因为这将期望名称为 person-0 和 person-1 而不是 people,这是我不想要的。我不能使用 SelectMultipleField,因为这似乎需要一个选择列表,而我不知道选择列表(它是由第 3 方动态提供给我的)。
我只是使用表单来验证生成的 HTML 发布数据,而不是渲染 HTML,所以不用担心。
我将发布我所做的作为答案,即使用自定义字段。但我想知道是否有某种方法可以使用内置字段在 wtforms 中执行此操作。
谢谢
【问题讨论】: