SelectField 强制我 select 从下拉列表中进行选择
SelectField forces me to select a choice from drop down
我正在创建一个包含电子邮件、地址、州、邮政编码和国家/地区的烧瓶表单。只有电子邮件是必填字段。 None 其他人是。但是,Flask WTForms 强制用户从下拉列表中 select 一个州和一个国家。
州和国家都是下拉选项。
class UserForm(FlaskForm):
email = EmailField('E-Mail', validators=[InputRequired()])
address1 = StringField('Address line 1', render_kw={"placeholder": "Address line 1"})
address2 = StringField('Address line 2', render_kw={"placeholder": "Address line 2"})
city = StringField('City', render_kw={"placeholder": "City"})
state = SelectField('State', [validators.Optional()], default=None, choices=statesList(), render_kw={"placeholder": "State"})
postal_code = StringField('Postal Code', render_kw={"placeholder": "Postal Code"})
country = SelectField('Country', default=None, choices=countriesList(), coerce=str, render_kw={"placeholder": "Country"})
@app.route('/create_user', methods=['GET', 'POST'])
def createUser():
form=UserForm()
if form.validate_on_submit():
return render_template('confirm_user.html', email=form.email.data,
address1=form.address1.data,
address2=form.address2.data,
city=form.city.data,
state=form.state.data,
postal_code=form.postal_code.data,
country=form.country.data)
我什至将州设为可选字段。这只发生在下拉字段中。
我已经查看了 Whosebug 上的一些帖子,但他们没有回答这个问题。这些帖子建议删除这些选项。我需要州和国家/地区的下拉菜单可见,但如果用户不想,则不需要制作 selection。在这种情况下,我将 return 一个空白值发送到数据库。
有人可以告诉我如何实现吗?
简单提供一个选项,代表不选择。例如
def states_list():
return [('XX', 'Pick a Choice'), ('AZ', 'Arizona')]
class UserForm(FlaskForm):
state = SelectField('State', choices=states_list(), default='XX')
@app.route('/create_user', methods=['GET', 'POST'])
def createUser():
form=UserForm()
if form.validate_on_submit():
if form.state.data == 'XX':
return 'No State Chosen'
return '{} Chosen'.format(form.state.data)
return render_template('form.html', form=form)
我正在创建一个包含电子邮件、地址、州、邮政编码和国家/地区的烧瓶表单。只有电子邮件是必填字段。 None 其他人是。但是,Flask WTForms 强制用户从下拉列表中 select 一个州和一个国家。
州和国家都是下拉选项。
class UserForm(FlaskForm):
email = EmailField('E-Mail', validators=[InputRequired()])
address1 = StringField('Address line 1', render_kw={"placeholder": "Address line 1"})
address2 = StringField('Address line 2', render_kw={"placeholder": "Address line 2"})
city = StringField('City', render_kw={"placeholder": "City"})
state = SelectField('State', [validators.Optional()], default=None, choices=statesList(), render_kw={"placeholder": "State"})
postal_code = StringField('Postal Code', render_kw={"placeholder": "Postal Code"})
country = SelectField('Country', default=None, choices=countriesList(), coerce=str, render_kw={"placeholder": "Country"})
@app.route('/create_user', methods=['GET', 'POST'])
def createUser():
form=UserForm()
if form.validate_on_submit():
return render_template('confirm_user.html', email=form.email.data,
address1=form.address1.data,
address2=form.address2.data,
city=form.city.data,
state=form.state.data,
postal_code=form.postal_code.data,
country=form.country.data)
我什至将州设为可选字段。这只发生在下拉字段中。
我已经查看了 Whosebug 上的一些帖子,但他们没有回答这个问题。这些帖子建议删除这些选项。我需要州和国家/地区的下拉菜单可见,但如果用户不想,则不需要制作 selection。在这种情况下,我将 return 一个空白值发送到数据库。
有人可以告诉我如何实现吗?
简单提供一个选项,代表不选择。例如
def states_list():
return [('XX', 'Pick a Choice'), ('AZ', 'Arizona')]
class UserForm(FlaskForm):
state = SelectField('State', choices=states_list(), default='XX')
@app.route('/create_user', methods=['GET', 'POST'])
def createUser():
form=UserForm()
if form.validate_on_submit():
if form.state.data == 'XX':
return 'No State Chosen'
return '{} Chosen'.format(form.state.data)
return render_template('form.html', form=form)