【发布时间】:2016-05-29 09:55:31
【问题描述】:
如果输入不是唯一的,我正在寻找一种检查额外字段的方法。使用纯 Flask+WTForms 我可以创建这样的表单类:
class EditProfileAdminForm(Form):
nickname = StringField('Nickname (login)', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired(), Email()])
def __init__(self, user, *args, **kwargs):
super(EditProfileAdminForm, self).__init__(*args, **kwargs)
self.user = user
def validate_email(self, field):
if field.data != self.user.email and \
User.query.filter_by(email=field.data).first():
raise ValidationError('Email is already registered.')
但是当我实现自定义 ModelView 时如何创建/修改表单类?向 ModelView 添加额外字段如下所示:
class UserModelView(ModelView):
form_columns = ('f_email', 'nickname')
form_extra_fields = {
'f_email': StringField('Email')
}
简单定义 validate_f_email 不起作用。
【问题讨论】:
标签: flask wtforms flask-admin