Python Django如何为每个视图指定不同的身份验证方法

Python Django如何为每个视图指定不同的身份验证方法,python,django,authentication,cas,Python,Django,Authentication,Cas,和标题差不多 我使用的是Django 1.11,有人要求我将CAS设置为某些视图的身份验证方法,并将其余视图保留在Django model auth之后,或者不进行身份验证 我试图将django\u cas\u ng集成到我的项目中,以重定向到cas服务器进行身份验证,但我不知道如何区分视图函数中的auth方法。Django支持多个auth后端,甚至支持完全定制的auth后端,但我想知道是否可以按名称为每个视图指定单独的auth方法(例如使用视图装饰器) Django允许显式指定不同的数据库和缓

和标题差不多

我使用的是Django 1.11,有人要求我将CAS设置为某些视图的身份验证方法,并将其余视图保留在Django model auth之后,或者不进行身份验证

我试图将
django\u cas\u ng
集成到我的项目中,以重定向到cas服务器进行身份验证,但我不知道如何区分视图函数中的auth方法。Django支持多个auth后端,甚至支持完全定制的auth后端,但我想知道是否可以按名称为每个视图指定单独的auth方法(例如使用视图装饰器)

Django允许显式指定不同的数据库和缓存,但是否有方法(或应用程序)为身份验证后端启用相同的数据库和缓存?

Django默认身份验证:

from django.contrib.auth.decorators import login_required

@login_required(login_url='/accounts/login/')
class AnyView(AnyViewClass):
    ...
可用于aouth视图:

from rest_framework.decorators import permission_classes, authentication_classes
from rest_framework.authentication import BasicAuthentication
from rest_framework.permissions import IsAuthenticated

    @authentication_classes((BasicAuthentication,))
    @permission_classes((IsAuthenticated,))
    class AnyView(APIView):
        ...
对于任何其他身份验证,如oauth2:

from oauth2_provider.decorators import protected_resource

@protected_resource()
class AnyView(APIView):
    ...

对于“不复制粘贴”,您可以创建两个具有不同身份验证类型的类,并将它们用作其他类的父类。

这是否特定于django rest framework?因为我没有在我的应用程序中使用它。只是常规的django视图函数。@aalizadeh第二个变体是的,请尝试第一个