You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用WTForms的SelectMultipleField并配置size属性

修改步骤

1. 调整form.py中的字段定义

把原来的SelectField替换为SelectMultipleField即可,原有参数基本可以直接复用:

# 替换前
# domains = SelectField(label='Domain', choices=DOMAINS, validate_choice=True, validators=[InputRequired()])
# 替换后
domains = SelectMultipleField(label='Domain', choices=DOMAINS, validate_choice=True, validators=[InputRequired()])

如果需要限制最少选择的选项数量,可以把InputRequired替换为Length(min=N),N为你要求的最少选择数

2. 调整HTML模板,添加size属性

文档提到的size属性直接在调用字段渲染的位置传入即可,属性值为你想要下拉框默认展示的选项行数:

<div class="form-group">
    {{ form.domains.label(class="form-control-label") }}
    {% if form.domains.errors %}
        {{ form.domains(class="form-control form-control-lg is-invalid", size=5) }}
        <div class="invalid-feedback">
            {% for error in form.domains.errors %}
                <span>{{ error }}</span>
            {% endfor %}
        </div>
    {% else %}
        {{ form.domains(class="form-control form-control-lg", size=5) }}
    {% endif %}
</div>

如果希望默认展示所有可选项,可以把size的值设置为DOMAINS列表的总长度
多选字段提交后返回的取值是所选选项的列表,和原SelectField返回单个值的逻辑不同,后端处理提交数据时需要注意适配。

内容的提问来源于stack exchange,提问作者Shira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 08:39:00