基于 Flask 中经过身份验证的用户角色的不同导航栏

问题描述 投票:0回答:0

我正在努力寻找一种解决方案,使我的 base.html 文件能够根据用户角色生成不同的导航栏。 UserRole 是一个枚举,在用户模型的数据库中维护。所有注册用户都分配了一个角色。 对于继承 base.html 文件的模板,它非常简单,因为我会像这样将它传递给模板:

@auth.route('/example', methods=['GET', 'POST'])
def example():
    return render_template(("example.html", userRole=UserRole, user = current_user))

我尝试的是在对会话变量进行身份验证时将 userRole 放在 base.html 中,然后像这样在 base.html 中使用它:

{% if session['userRole'] == 'Admin'%}
<a class="nav-item nav-link" id="login" href="/login">Login</a>
{% elif session['userRole'] == 'Client'%}
<a class="nav-item nav-link" id="home" href="/">Home</a>
{% endif%}

但是上面的例子会让我没有导航栏...... 如何将 UserRole 值和 current_user 传递给 base.html 文件?

flask jinja2 navbar
© www.soinside.com 2019 - 2024. All rights reserved.