用户从具有完整表单列表的页面开始。当用户单击特定行上的“编辑”时,程序将使用表单ID查询数据库以检索表单信息。
form_counter = form_id <-- the value retrieved from the original page
parent = Form.query.order_by(Form.form_id).slice(form_counter, form_counter + 1).first()
form = CombinedTeamForm(obj=parent)
该页面可以很好地存储Flask Form对象中存储的所有信息。
编辑表单 我遇到的问题是,一旦用户在加载的页面上编辑了信息并单击“下一步”,即使我使用相同的数据库调用或使用会话数据检索表单数据,Flask Form对象也基本上为空。似乎与发布请求冲突。
parent = Form.query.filter_by(form_id=231).first() <-- even if I hardcode it, it does NOT work!
form = CombinedTeamForm(obj=parent)
parent = Form.query.filter_by(form_id=231).first()
form = CombinedTeamForm(obj=parent)
class CombinedTeamForm(FlaskForm):
form_id = IntegerField('Form Id')
form_name = StringField('Form Name', validators=[DataRequired()])
team = FieldList(FormField(TeamForm, default=lambda: Team()))
class Form(db.Model):
form_id = db.Column(db.Integer, primary_key=True)
team = db.relationship('Team', backref='parent', lazy=True)
class Team(db.Model):
team_id_pk = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(50), unique=False)
print(form.data)
ACTUAL OUTPUT:
{... 'form_id':231, 'team':[]...}
EXPECTED OUTPUT:
{... 'form_id':231, 'team': [{'team_id_pk':222, 'first_name':'Jordan'}, {'team_id_pk':223, 'first_name':'Joel']}