Django身份验证系统

时间:2018-08-12 20:42:07

标签: python django authentication redirect

我正在使用内置的django身份验证系统,在我的登录模板中,我有以下代码:

login.html:

{% block title %}Login{% endblock %}

{% block content %}
<h2>Login</h2>
{% if user.is_authenticated%}
    you are already logged in
  {% else %}
  <form method="post">
  {% csrf_token %}
  {{ form.as_p }}
    <button type="submit">Login</button>
  </form>
{% endif %}
{% endblock %}

但是我真正想做的是,如果用户在已经登录的情况下尝试访问登录页面,则将其重定向到主页,但是我是django的新手,所以我不知道该怎么做。

3 个答案:

答案 0 :(得分:0)

在您的“ settings.py”中添加以下内容:

LOGIN_REDIRECT_URL = 'index'

如果索引的网址名称是“索引”,则输入正确的网址名称

答案 1 :(得分:0)

对于django> = 1.11,您可以在url_patterns的URL中将redirect_authenticated_user参数设置为True来进行重定向,如下所示:

from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^login/', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'),
]

阅读document以获得更多信息。

,还将设置文件中的LOGIN_REDIRECT_URL设置为索引URL或其名称:

LOGIN_REDIRECT_URL = '/index/'

答案 2 :(得分:0)

您可以在views.py文件中进行操作。

def login(request):
    if request.method =="get":
        if request.user.is_authenticated:
            return render(// youre code)