Python 仅允许登录用户访问URL

Python 仅允许登录用户访问URL,python,django,Python,Django,我开始使用django框架,我创建了一个简单的网站,用户首先登录,然后重定向到另一个页面 我尝试在登录前键入重定向页面的URL,然后加载。相反,我希望它重定向回登录页面(主页) 我试着检查用户是否经过身份验证,只有在页面被验证的情况下才能查看该页面。它写在重定向页面的views.py文件中: def index(request): if request.user.is_authenticated(): return render(request, 'professors/

我开始使用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')
from django.urls import path
from . import views

urlpatterns = [
    path(r'', views.index, name='index')
];
url.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')
from django.urls import path
from . import views

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

若要将视图限制为仅登录用户,请使用django的登录所需装饰器

视图.py

from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    return render(request, 'professors/index.html')
from django.urls import path
from . import views

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

from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    return render(request, 'professors/index.html')
from django.urls import path
from . import views

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

如果他们没有登录,他们将被重定向到您的登录页面

我编辑了代码,但仍然允许访问URL。如果该代码位于
views.py
?您可能已经登录,此方法肯定有效。是的,它应该在视图中我知道我不是,因为我检查是否可以访问管理页面,它会弹出登录表单。如果我登录,它将允许我访问管理页面。显示该视图的
url.py
views.py
问题在于此文件rep1/proj1/url.py您实际上没有链接其他
url.py
文件