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:
нарушение:
Theis_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