欢迎访问宙启技术站
智能推送

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() 创建多选字段的例子。希望对你有所帮助!