AttributeError:'bool'对象没有属性'__call__'

时间:2017-09-06 19:40:46

标签: python web flask flask-login

我正在研究flask应用程序中的模板。 在尝试处理用户登录时的身份验证时, 我一直收到错误

AttributeError: 'bool' object has no attribute '__call__'

我在我的templates / base.html

中写了这个
{% if current_user.is_authenticated() %}
<li><a href="{{ url_for('auth.logout') }}">Sign Out</a></li>
{% else %}
<li><a href="{{ url_for('auth.login') }}">Sign In</a></li>
{% endif %}

我不知道在发生这种情况时,我还在view函数中写了这个用于调用模板,如果这可能是原因,

from flask import current_user

但它仍然做同样的事情。

我该怎么办?

3 个答案:

答案 0 :(得分:3)

is_authenticated是一个引用bool值。你不能叫bool值。

()删除is_authenticated应解决错误

{% if current_user.is_authenticated %}
<li><a href="{{ url_for('auth.logout') }}">Sign Out</a></li>
{% else %}
<li><a href="{{ url_for('auth.login') }}">Sign In</a></li>
{% endif %}

答案 1 :(得分:2)

使用不is_authenticated的{​​{1}},因为()是属性,而不是函数

答案 2 :(得分:1)

看起来current_user.is_authenticated是一个布尔值,但你试图将__call__作为一个函数加入它后面的()。

只需将其称为current_user.is_authenticated

即可