Python Flask - 登录 - 未定义错误:'无'没有属性'is_authenticated'

时间:2013-12-24 08:37:47

标签: python python-2.7 flask flask-login flask-extensions

使用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'

1 个答案:

答案 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