我正在尝试在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
答案 0 :(得分:23)
尝试将if g.user.is_authenticated():
替换为if g.user.is_authenticated:
,如下所示:
@app.before_request
def before_request():
g.user = current_user
if g.user.is_authenticated:
g.search_form = None
来自the document:
<强> is_authenticated 强>
如果用户已通过身份验证,则返回True,即他们已提供有效凭据。 (只有经过身份验证的用户才能满足login_required的条件。)
正如文件所述, is_authenticated 是一个布尔值(True
或False
)。
然而,过去是一个功能,but it has been changed to boolean at version 3.0:
<强> BREAKING:强>
is_authenticated
,is_active
和is_anonymous
用户类的成员现在是属性,而不是方法。应用程序应更新 相应的用户类。
答案 1 :(得分:3)
这是因为is_authenticated
不是一个函数,而只是一个布尔值。请尝试以下方法:
@app.before_request
def before_request():
g.user = current_user
if g.user.is_authenticated:
g.search_form = None