Python 如何正确配置身份验证视图?(Django)

Python 如何正确配置身份验证视图?(Django),python,django,django-views,django-authentication,Python,Django,Django Views,Django Authentication,有两个视图index和index1,我的登录视图是 def loginview(request): if request.user.is_authenticated: return redirect('index') else: return redirect('index2') url.py urlpatterns = [ path('',loginview,name="login"), path

有两个视图index和index1,我的登录视图是

def loginview(request):
    if request.user.is_authenticated:
        return redirect('index')
    else:
        return redirect('index2')
url.py

urlpatterns = [
       path('',loginview,name="login"),
       path('index/',index,name="index"),
       path('index2/',index2,name="index2"),
       ]
代码可以工作,但我只想在用户登录或注销后访问index和index2

当我导航到localhost:8000/index和localhost:8000/index2时,页面将指向相应的页面


如何限制这些页面上的授权?

您可以在django基本用户类定义上添加一个标志,以创建一个状态来控制此问题

from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):

    # other User definitions
    index_page = models.CharField(max_length = 12)

然后,当您调用loginview时,您可以确定用户进一步请求的索引页。

在登录时签出Django的文档:,您可以添加一个装饰器