我正在使用Flask-WTF表单,我有以下代码:
在forms.py
中class DealForm( Form ):
country = SelectField( 'Country' )
在main.py中
if not form.validate_on_submit():
form = DealForm()
form.country.choices = [('us','USA'),('gb','Great Britain'),('ru','Russia')]
return render_template( 'index.html', user = current_user, form = form )
else:
return render_template( 'index.html', form = form )
从POST返回时出错,因为country.choices为None 我做错了什么?
答案 0 :(得分:11)
您需要在致电validate_on_submit()
之前设置选项。
因为它们是静态的,所以在创建Form类时执行:
class DealForm(Form):
country = SelectField('Country', choices=[
('us','USA'),('gb','Great Britain'),('ru','Russia')])
如果您想在创建表单实例后设置它们,例如因为可用选项不是硬编码或根据其他因素而不同,所以在创建类的实例后你会这样做:
form.country.choices = [('us','USA'),('gb','Great Britain'),('ru','Russia')]
即。就像你早先做过的那样。