flask wtf SelectField,动态输入和验证

时间:2013-06-19 13:32:40

标签: sqlalchemy flask flask-wtforms

第一个问题:动态输入到SelectField(选项),在我的数据库(sqlite,用SqlAlchemy)中我有一个表,从这个表中我不会选择SelectField中的所有条目。作为选择的结果,我需要条目中的ID。

foo_id = SelectField('Label', choices=[Foo.query.all()])

第二个问题:如果我把它放入SelectField:

foo_id = SelectField('Foo', choices=[(1, 'Foo 1'), (2, 'Foo 2')])

每次:

  

不是一个有效的选择

验证会怎样?

感谢您的时间,祝您度过愉快的一天!

1 个答案:

答案 0 :(得分:2)

两个答案:

  1. 使用wtforms.ext.sqlalchemy.fields.QuerySelectField

  2. 添加一个可调用的coerce参数,用于强制从浏览器返回的字符串:

    SelectField('Foo', coerce=int, choices=[(1, 'Foo 1'), (2, 'Foo 2')])