-1

我正在使用 Python,Flask-Login,

下面一行来自 Flask html

{% if current_user.is_authenticated() %

在 Ubuntu 操作系统中抛出以下错误,在 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'
4

1 回答 1

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

于 2013-12-26T17:24:23.300 回答