【发布时间】:2016-12-13 12:59:14
【问题描述】:
在 Flask 和 SQLAlchemy 中使用 WTForms。从用户名和电子邮件字段中获取数据并确保它不在数据库中。这是我现在必须做的。
class IsUnique(object):
def __init__(self, db_field=None):
self.db_field = db_field
def __call__(self, form, field):
data = field.data
if self.db_field=='name':
if User.query.filter_by(name=data).first() != None:
raise ValidationError('Sorry, that username is taken.')
if self.db_field=='email':
if User.query.filter_by(email=data).first() != None:
raise ValidationError(
'Sorry, that email address has already been registered.'
)
我想做的是将 db_field 参数作为字符串传递给类实例,并将其传递给User.query.filter_by(db_field=data。不幸的是,我所知道的只是使用 if 语句,它有效,但有点麻烦。一定有办法做到这一点,但我不知道怎么做。
【问题讨论】:
标签: python sqlalchemy flask-sqlalchemy wtforms flask-wtforms