【发布时间】:2016-12-16 12:33:24
【问题描述】:
我需要将一个对象从我的数据库传递到我的表单,我想从中读取默认值。我当前的代码如下所示:
我的初始化:
form = EditEventForm(event)
还有我的表单类:
class EditEventForm(FlaskForm):
def __init__(self, event):
self.event = event
name = StringField('Name', validators=[DataRequired()], default=self.event.name)
description = TextAreaField('Description', validators=[DataRequired()], default=self.event.description)
street = StringField('Street and number', validators=[DataRequired()], default=self.event.street)
city = StringField('City', validators=[DataRequired()], default=self.event.city)
time = StringField('Time', validators=[DataRequired()], default=self.event.time)
但显然,表单无法访问自身上下文。有没有其他方法可以实现它,以便我的字段可以从传递的对象中读取数据?
【问题讨论】:
-
您在寻找
FlaskForm(obj=…)吗? -
@Kay 看起来不错,但我如何从表单中访问它?只是 obj.attribute?
-
表单与对象无关,反之亦然。用
FlaskForm(obj=…)读出一个对象,用FlaskForm.populate_obj(…)设置一个对象的值。
标签: python python-3.x flask wtforms flask-wtforms