我正在研究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
但它仍然做同样的事情。
我该怎么办?
答案 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