我在使用django身份验证时遇到问题
 我有一个使用装饰器@login_required的视图。

登录后,用户将继续浏览页面,填充一些数据并使用发布请求来访问下一页,但是,当尝试返回上一页时,django将再次显示登录表单。
有办法防止这种情况吗?

我当时正在考虑使用按钮返回与该会话相关的帖子,因此django不会再次要求登录,但是我不确定是否可以这样做。

最佳答案

如果您不希望已登录的用户看到登录表单,建议您将已登录的用户重定向到另一个页面:

def login_page(request):
    if request.user.is_authenticated:
        return redirect('some-other-page')
    [...the rest of the login-page logic goes here; pass form through via context...]


您还可以在登录页面上向登录用户显示一条消息,告诉他们已使用模板逻辑登录:

{% if request.user.is_authenticated %}
    <p>You are already logged in</p>
{% else %}
    <form>
        {{ form }}
        <input type='submit'>Submit</input>
    </form>
{% endif %}

关于python - View 之间的Django身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47892208/

10-08 22:01
查看更多