【发布时间】:2016-07-05 05:43:18
【问题描述】:
参考以下表格。
CONTROL_CHOICES = Session.query(schema.OfficeType).order_by(schema.OfficeType.descr).all()
CONTROL_CHOICES = [(office.id, office.descr) for office in CONTROL_CHOICES]
class ControlForm(Form):
institution = RadioField('Institution', choices=CONTROL_CHOICES)
date = DateField('Date')
submit = SubmitField('SUBMIT')
简单的 HTML
<form action="composition_profile" method="get">
{{control_form.hidden_tag()}}
{{control_form.institution.label}}
{{control_form.institution}}
{{control_form.date.label}}
{{control_form.date}}
{{control_form.submit}}
</form>
但是,在填写表单时,validate_on_submit() 不会打印错误,但不会执行 if 内的代码
validate() 打印以下错误。
{'机构': ['不是一个有效的选择']}
@app.route('/composition_profile', methods=['GET', 'POST'])
def composition_profiles():
if request.method == 'GET':
if request.args.get('institution') and request.args.get('date'):
form = ControlForm(request.args)
print(form.institution.data)
if form.validate():
print('terms')
print(form.errors)
知道它是如何导致不正确的选择的吗?我不确定发生了什么。将其更改为 QuerySelectField 可以,但我想要收音机功能
【问题讨论】:
-
print(form.institution.data)语句打印出什么? -
无线电场的描述 IE
Governor或President似乎切换到[(office.descr,office.descr) for ....]是有效的,但它导致我需要在我的查询中额外加入,因为我必须取回描述中的 ID