只允许登录用户访问URL

时间:2019-06-12 17:28:09

标签: python django

我开始使用django框架,并创建了一个简单的网站,用户首先登录,然后将其重定向到另一个页面。

我尝试在登录之前输入重定向页面的URL,然后加载。相反,我希望它重定向回登录页面(主页)。

我尝试检查用户是否经过身份验证才能仅查看该页面。它写在重定向页面的views.py文件中:

def index(request):
    if request.user.is_authenticated():
        return render(request, 'professors/index.html')
    else:
        return redirect('' % request)
  • professors/是重定向页面的URL
  • ''是登录页面(主页)的URL

更新

views.py

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required

# Create your views here.
@login_required
def index(request):
    return render(request, 'professors/index.html')

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path(r'', views.index, name='index')
];

1 个答案:

答案 0 :(得分:1)

要将视图限制为仅登录的用户,请使用django的登录必需修饰符

views.py

from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    return render(request, 'professors/index.html')

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index')
]

如果未登录,它们将被重定向到您的登录页面