Я понимаю, что это традиционный способ создания пользовательской модели в Python-flask:
Код: Выделить всё
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
def __repr__(self):
return f"User('{self.username}', '{self.email}', '{self.image_file}')"
где их пользовательская модель наследуется от db.Model, затем от UserMixin, а затем они загружают пользовательские данные следующим образом:
Код: Выделить всё
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
Однако я создал собственную базовую модель, от которой наследуется моя пользовательская модель, и все работает нормально, пока я не хочу использовать UserMixin для обработки процесса входа в систему, в котором я продолжаю получать
отсутствующие user_loader или request_loader ошибка. Ниже представлена моя модель персонала и функция user_loader.
Код: Выделить всё
@login_manager.user_loader
def load_user(user_id):
"""Return a staff object for an id"""
return models.get_specific_staff(int(user_id))
class Staff(BaseModel, Base, UserMixin):
"""A Staff object that defines each Efcc staff features"""
__tablename__ = 'staffs'
# staff_no = ''
Когда я тестировал load_user() вручную, он работал отлично. Но когда я интегрировал его в свой API, я даже снова визуализировал шаблон даже для целевой страницы, которая работает по запросу GET. Пожалуйста, в чем я ошибаюсь?
Подробнее здесь:
https://stackoverflow.com/questions/786 ... e-usermixi