Использование WTForms с флягой и SQLAlchemy. Принимая данные из поля имени пользователя и электронной почты и убедившись, что его еще нет в базе данных. Вот что я должен сделать прямо сейчас.Передача аргумента классу, который становится ключевым словом для функции
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, который работает, но является довольно громоздким. Должен быть способ сделать это правильно, но я не знаю, как это сделать.