TypeError: объект 'bool' не вызывается g.пользователь.аутентифицируется () [дубликат]

этот вопрос уже есть ответ здесь:

Я пытаюсь сделать это в своем приложении Flask. Но я получаю ошибку, как это

TypeError: 'bool' object is not callable. 

вот соответствующий код:

@app.before_request
def before_request():
    g.user = current_user
    if g.user.is_authenticated():
       g.search_form = None

2 ответов


попробуйте заменить if g.user.is_authenticated(): to if g.user.is_authenticated: такой:

@app.before_request
def before_request():
    g.user = current_user
    if g.user.is_authenticated:
       g.search_form = None

С документ:

is_authenticated

возвращает true, если пользователь аутентифицирован, т. е. они предоставили действительные учетные данные. (Только аутентифицированные пользователи будут выполнять критерии login_required.)

как сказано в документе,is_authenticated - это логическое(True или False).

однако, это была функция в прошлом, но он был изменен на boolean в версии 3.0:

нарушение:
The is_authenticated, is_active и is_anonymous
члены класса user теперь являются свойствами, а не методами. Приложения должны обновляться их классы пользователей соответственно.


это так is_authenticated это не функция, а лишь логическим. Вместо этого попробуйте следующее:

@app.before_request
def before_request():
    g.user = current_user
    if g.user.is_authenticated:
       g.search_form = None