即使用户已登录,也会显示登录页面

时间:2014-02-17 19:14:34

标签: python django authentication login

我使用Django的身份验证视图django.contrib.auth.views.login来登录我的用户。

urls.py

urlpatterns = patterns('',
    url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
)

Here is the doc关于此功能。

我的问题:即使用户已经连接,也会显示登录页面。

2 个答案:

答案 0 :(得分:0)

您可以在自己的视图中使用您自己修改的contrib登录视图。只需更改登录URL以指向您自己的视图,然后检查它们是否已登录:


<强> views.py

from django.contrib.auth.views import login as contrib_login

def login(request):
    if request.user.is_authenticated():
        return redirect(settings.LOGIN_REDIRECT_URL)
    return contrib_login(request)

答案 1 :(得分:0)

对于django 2.x,您只需执行此操作

from django.contrib.auth import views as auth_views
from django.urls import path

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