使用Python,Flask-Login,
来自Flask html的以下行
{% if current_user.is_authenticated() %
在Ubuntu OS中抛出以下错误,并在Windows操作系统(W7)
中正常工作 File "/home/user/workspace/test/templates/layout.html", line 27, in top-level template code
{% if current_user.is_authenticated() %}
UndefinedError: 'None' has no attribute 'is_authenticated'
答案 0 :(得分:1)
我刚想出错误,我已经通过覆盖上下文处理器修复了它:
login_manager.init_app(app, add_context_processor=False)
@app.context_processor
def login_fix():
import flask_login
return dict(current_user=flask_login._get_user() or current_app.login_manager.anonymous_user())
模板中出错的原因是原始上下文管理器(来自flask_login.py)的实现方式如下:
789: def _user_context_processor():
790: return dict(current_user=_get_user())
如果找不到用户,函数_get_user
将返回None
。