【问题标题】:List converted to Dropdown in Flask/WTForms列表转换为 Flask/WTForms 中的下拉列表
【发布时间】:2016-09-15 23:24:40
【问题描述】:

基本上,我在 Python 中有一个列表,并希望使用 WTForms 以编程方式调用并从该列表中创建一个下拉表单到 HTML 文档中。尝试在 WTForms 中使用 SelectField 方法时,我无法弄清楚我在这里缺少什么。该列表在“updatef”内。

我收到错误:ValueError:需要超过 1 个值才能解压 尝试运行时。

class ReusableForm(Form):  # Define the form fields and validation parameters
    updates = SelectField(u'Update Frequency', choices = updatef, validators = [validators.required()])


@app.route("/editor", methods=['GET', 'POST'])
def hello():
    form = ReusableForm(request.form)  # calls on form

        if request.method == 'POST':
            updates = request.form['updates']

HTML

    <form  id="main" action="" method="post" role="form" spellcheck="true">
    <p> {{ form.updates }} </p>

【问题讨论】:

    标签: python flask jinja2 wtforms flask-wtforms


    【解决方案1】:

    choices 必须是 2 个值元组的列表,例如 [(1,'Daily'),(2,'Weekly')] - 您的错误似乎表明您可能只有一个值列表。

    【讨论】:

    • 嗯,谢谢!我明天再看,但这是有道理的。
    • 感谢这成功了。我只需要将“id”主键添加到列表中。
    • 所以我只能通过为 SelectField 参数添加 coerce=int 来完成这项工作。但输出是选择的“ID”号。例如,我的第二个选择是“BOB”,但我的输出是 ID 号“2”。我如何获得“BOB”作为我的输出?
    • 您可以只更改键值对,如 [("daily", "daily")]。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    相关资源
    最近更新 更多