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

Hol*_*son 8 python flask wtforms flask-wtforms

我想基于查询搜索填充选择字段.

但我也想要一个空选项.

这是我目前的代码

 form.state.choices=[(s.id, s.name) for s in State.query.all()]
Run Code Online (Sandbox Code Playgroud)

结果是

  <select>
  <option value="CA">California</option>
  <option value="FL">Florida</option>
  </select>
Run Code Online (Sandbox Code Playgroud)

期望的结果是

<select>
<option value=""></option>
<option value="CA">California</option>
<option value="FL">Florida</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果select选项为空,如果无效也会很酷.

ich*_*lau 11

您可能希望像这样添加空值:

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

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


fab*_*fab 5

您也将空值添加到同一行中:

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