具有空选项的Flask-wtf动态选择字段

时间:2016-12-01 08:13:12

标签: python flask wtforms flask-wtforms

我想根据查询搜索填充选择字段。

但我也想要一个空选项。

这是我目前的代码

 form.state.choices=[(s.id, s.name) for s in State.query.all()]

结果是

  <select>
  <option value="CA">California</option>
  <option value="FL">Florida</option>
  </select>

期望的结果是

<select>
<option value=""></option>
<option value="CA">California</option>
<option value="FL">Florida</option>
</select>

如果select选项为空,那么如果无效也会很酷。

2 个答案:

答案 0 :(得分:9)

您可能想要添加如下的空值:

choices = [("", "---")]
form.state.choices=[choices.append((s.id, s.name)) for s in State.query.all()]

然后你可以检查值是否为空字符串以验证字段。

答案 1 :(得分:2)

您也可以在同一行中添加空值:

form.state.choices=[("", "---")]+[(s.id, s.name) for s in State.query.all()]