在同一个视图函数内,实现局部配置权限类和认证类

发布时间 2024-01-04 21:13:10作者: wellplayed

视图函数内书写如下代码:

 def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.request_action = None

    def initialize_request(self, request, *args, **kwargs):
        self.request_action = request.method.lower()
        return super().initialize_request(request, *args, **kwargs)
    
    # 局部配置认证类
    def get_authenticators(self):
        # 自己配置局部函数
        if self.request_action == 'post':
            self.authentication_classes = []
        return super().get_authenticators()
   
    # 局部配置权限类
    def get_permissions(self):
        # 自己配置局部函数
        if self.request_action == 'post':
            self.permission_classes = []
        return super().get_permissions()