Как использовать функцию user_loader для различных классов моделей - PullRequest
0 голосов
/ 17 марта 2019

Я использую функцию 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 не имеет встроенного решения для этого.

...