restframework的权限

 

  权限的主要应用比如指定的数据,vip用户或者付费才能观看的,普通用户不能访问,我们就可以用权限组件对其进行限制

 

 

# 权限的都是发生在认证后面的,所以认证时要返回obj.user,权限判断的时候好直接获取用户

from rest_framework.permissions import BasePermission
class UserPermission(BasePermission):
    message = '不是vip用户,查看不了'
  # 定义message,后台访问就会显示定义的内容

    def has_permission(self, request, view):
        # user_type = request.user.get_user_type_display()
        # if user_type == '超级用户':
        user_type = request.user.user_type
        print(user_type)
        if user_type == 1:
            return True
        else:
            return False

class Course(APIView): authentication_classes = [TokenAuth, ] permission_classes = [UserPermission,] def get(self, request): return HttpResponse('get') def post(self, request): return HttpResponse('post')

 

 

和认证组件的使用差不多,通常我们会自定义py文件来单独写,作为模块导入使用

也有局部使用和全局使用

# 局部使用
    permission_classes = [UserPermission,]

# 全局使用
    REST_FRAMEWORK={
    "DEFAULT_AUTHENTICATION_CLASSES":["app01.service.auth.Authentication",],
    "DEFAULT_PERMISSION_CLASSES":["app01.service.permissions.SVIPPermission",]
}

 

posted @ 2020-08-11 22:53  不忘初心❤  阅读(126)  评论(0编辑  收藏  举报