Я использую функцию user_loader
для получения идентификатора пользователя для обработки сеанса.Однако я ударил стену, когда попытался использовать одну и ту же функцию для различных классов моделей.
Мой код:
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
class User(db.Model):
# etc etc
class Client(db.Model):
# etc etc
class SuperUser(db.Model):
# etc etc
Я попытался передать дополнительный аргумент:
@login_manager.user_loader
def load_user(model, user_id):
return model.query.get(int(user_id))
и в моем файле приложения:
login_user(Client, client, form.remember_me.data)
К сожалению, это дает мне ошибку, говоря, что login_user не принимает такой дополнительный аргумент.Совершенно очевидно, что мне нужно реализовать собственное решение для этого.Хотя я удивлен, потому что я думаю, что не могу быть единственным, кто столкнулся с этой проблемой, и Flask не имеет встроенного решения для этого.