如何使用wtforms创建BooleanField列表

问题描述 投票:1回答:1

我的目标是从数据库中查询用户列表,然后在每个人的名字旁边放置一个BooleanField。可以检查每个人是否将提交表格。我尝试过使用SelectMultipleField,但它似乎只提交了一个值,而FieldList确实没有例子,所以我不确定它们是否可能是我想要的。我是WTForms的新手,我不确定什么是我想要做的最好的选择。

示例:enter image description here

python-3.x flask-sqlalchemy wtforms flask-wtforms
1个回答
1
投票

我假设你正在使用Flask-SQLAlchemy来处理你的数据模型,因为你没有提到你如何访问你的数据库。

表格定义如下:

class ExampleForm(Form):
    user = QuerySelectMultipleField(
        'User',
        query_factory=lambda: User.query.all(),
        widget=widgets.ListWidget(prefix_label=False),
        option_widget=widgets.CheckboxInput()
    )
    submit = SubmitField('Submit')

将为每个用户生成一个复选框列表,然后可以根据需要进行处理。然后,呈现表单的模板可以是:

<form action="" method="POST">
    {{ form.csrf_token }}
    {{ form.user }}
    {{ form.submit }}
</form>

路线代码就是:

@app.route('/', methods=['post','get'])
def home():
    form = ExampleForm()
    if form.validate_on_submit():
        return "{}".format(form.user.data)
    return render_template('example.html', form=form)
© www.soinside.com 2019 - 2024. All rights reserved.