提交表单之前如何访问Flask_WTF表单中的表单数据?

时间:2019-04-09 21:31:24

标签: python flask flask-wtforms wtforms

我正在创建一个表单以查找其他小组成员,其中所有成员均属于部门。某些部门(但不是全部部门)具有内部ID,可用于标识每个成员。每个部门对于此内部成员ID都有不同的术语。部门A称为“个人标识符”,部门B称为“唯一ID”,等等。在数据库departments表中,member_id_term字段存储部门称为内部成员ID的内容。在数据库的members表中,internal_id存储成员的internal_id(如果他们属于internal_id系统的部门)。

在表单的第一页上,用户选择部门,在表单的第二页上,如果用户选择了使用内部成员ID的部门,则要求他们放置内部成员ID。 / p>

我的策略是在views.py中创建一个名为member_id_term的变量,如果没有form.dept.data则将其设置为0,而将member_id_term设置为{{1} } form.dept.data.member_id_term存在时。然后,在form.dept.data中,如果存在input_find_member.html,我将有条件地显示internal_id的输入字段。

问题:在提交表单之前,我无权访问member_id_term。提交表单之前如何访问此值?

这是我当前拥有的代码。它在form.dept.data上引发错误,并说member_id_term = 0 if not form.dept.data else form.dept.data.member_id_term为空。

form.dept.data

forms.py

class FindMemberForm(Form): name = StringField( 'name', default='', validators=[Regexp('\w*'), Length(max=50), Optional()] ) internal_id = StringField('internal_id', default='', validators=[Regexp('\w*'), Length(max=55)]) dept = QuerySelectField('dept', validators=[DataRequired()], query_factory=dept_choices, get_label='name')

views.py

这是@main.route('/find', methods=['GET', 'POST']) def get_officer(): form = FindMemberForm() member_id_term = 0 if not form.dept.data else form.dept.data.member_id_term if form.validate_on_submit(): return redirect(url_for('main.get_gallery'), code=307) return render_template('input_find_member.html', form=form) {% extends "base.html" %} {% block content %}

input_find_member.html

我已经阅读了这些页面
Flask WTForms: how do I get a form value back into Python?
Get data from WTForms form
populate WTForms select field using value selected from previous field

感谢阅读!

0 个答案:

没有答案