我正在开发"添加会员详细信息"和"编辑会员详细信息"页。对于"添加会员详细信息"我使用下面显示的wtf表单(剥离版本)
class RegisterForm(Form):
name = TextField(
'Name',
validators=[DataRequired(), Length(min=3, max=25)]
)
phone = TextField(
'Phone',
validators=[DataRequired(),
Length(min=10, max=10, message="Invalid phone number")],
)
对于编辑页面,想法是从RegisterForm继承EditForm并将默认值设置为name和phone的值。但努力管理继承。以下是我想要实现的目标。任何帮助表示赞赏。
class EditForm(RegisterForm):
def __init__( not sure of args, member ):
self.name.default = member.name
self.phone.default = member.phone
答案 0 :(得分:1)
使用TextField
时,您应设置self.field.data
而不是self.field.default
。在这种情况下,您只需使用member
关键字在表单的默认构造函数中传递obj
即可完成默认值。这就是我的意思:
form = EditForm(obj=member)
表单会在member
上搜索属性,以填充其相同名称的字段(此处为the docs)。它与以下代码具有相同的效果:
class EditForm(RegisterForm):
def __init__(self, member, *args, **kwargs):
super(EditForm, self).__init__(*args, **kwargs)
self.name.data = member.name
self.phone.date = member.phone