wtforms.fields.SelectMultipleField()-选择多个选项的多选字段
发布时间:2023-12-24 22:56:06
wtforms.fields.SelectMultipleField() 是 WTForms 库中的一个字段类,用于创建一个可以选择多个选项的多选字段。
使用该字段类时,需要传入一组选项(choices),可以通过元组或者列表的形式提供。每个选项都是一个元组,包含两个值, 个值为选项的值,第二个值为选项的文本显示。
以下是一个使用 wtforms.fields.SelectMultipleField() 创建一个多选字段的例子:
from wtforms import Form, SelectMultipleField, validators
class MyForm(Form):
choices = [('apple', 'Apple'), ('banana', 'Banana'), ('orange', 'Orange')]
fruits = SelectMultipleField('Fruits', choices=choices, validators=[validators.DataRequired()])
def validate_fruits(form, field):
if len(field.data) < 2:
raise validators.ValidationError('You must select at least 2 fruits.')
form = MyForm()
if form.validate_on_submit():
selected_fruits = form.fruits.data
# Do something with the selected fruits
在上面的例子中,我们定义了一个 MyForm 类,继承自 WTForms 的 Form 类。在 MyForm 类中,我们创建了一个名为 fruits 的 SelectMultipleField 字段,将其作为属性添加到表单中。
SelectMultipleField 的 个参数是字段的标签 (label),用于显示在表单中。
choices 参数用于指定可选项,这里我们定义了一个元组列表作为可选项,每个元组里包含一个值和一个文本。
我们还为 fruits 字段添加了一个 validators.DataRequired() 验证器,确保用户必须选择至少一个选项。
为了自定义验证规则,我们还定义了一个 validate_fruits 方法,并将其作为 fruits 字段的方法验证器。在这个自定义验证方法中,我们检查用户选择的选项个数,如果小于2个,则抛出一个验证错误。
最后,在处理表单时,我们可以通过 form.fruits.data 获取用户选择的值。
这样就完成了使用 wtforms.fields.SelectMultipleField() 创建多选字段的例子。希望对你有所帮助!
