Я мигрирующого моего старого кода из колбы SQLAlchemyTypeError: несвязанный метод make_valid_name() должен быть вызван с экземпляром пользователя в качестве первого аргумента (получил Юникод экземпляра вместо)
from flask.ext.sqlalchemy import SQLAlchemy
к sqlalchemy.orm - сессия производитель
from sqlalchemy.orm import sessionmaker
Модель
@staticmethod
class User(Base):
__tablename__ = 'user'
id = Column(Integer , primary_key=True)
name = Column(String(20) , unique=True, nullable=False)
.
.
.
def make_valid_name(name):
return re.sub('[^a-zA-Z0-9_\.]', '', name)
Форма
def validate(self):
.
.
.
if self.name.data != User.make_valid_name(self.name.data):
self.name.errors.append('Please use letters, numbers, dots and underscores only.')
return False
При принятии вызова метода self.validate() бросает следующие ошибки
TypeError: unbound method make_valid_name() must be called with User instance as first argument (got unicode instance instead)
Я не уверен, что должно быть изменено, как я могу проверить «self.name.data "С полевых данных
Любая помощь по этому вопросу будет отличной.
ли '@ staticmethod' отображаются в коде, который вы пропустили? – dirn
Да, это статический метод. – Pradeep