4

我正在使用 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 我做错了什么?

4

1 回答 1

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')]

就像你已经做过但更早的那样。

于 2012-06-06T20:13:44.103 回答