视图之间的Django身份验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视图之间的Django身份验证相关的知识,希望对你有一定的参考价值。

我在使用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 %}

以上是关于视图之间的Django身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

Django 2.1.2 密码重置身份验证视图:找不到“password_reset_confirm”的反向

如何在django2.0.6中的通用删除视图中添加用户身份验证

基于 Django 类的视图中的身份验证用户

Django 基于类的通用视图和身份验证

如何在 django 的类视图上进行身份验证