#权限
#创建一个权限类 在view添加列表
class MyPermission(object):
#message 表示权限决绝时返回的数据
message = "必须是SVIP"
def has_permission(self, request, view):
if request.user.user_type != 3:
return False
return True #有权访问
permission_classes = [MyPermission,]
#局部使用
在utils里创建permission.py 文件
from api.utils.permission import Mypermission
#全局使用
REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES":['api.utils.auth.SVIPPermission']
}
源码流程
-has_permission(self,request, view)
内置代码
from rest_framework.permissions import BasePermission
#必须继承BasePermission 必须实现 has_permission 方法
返回值:
True 有权访问
False 无权访问
一般不抛出异常 直接通过 message可以实现无权时,页面显示信息
BasePermission(object):
def has_permission(self, request, view):
return True
def has_object_perssion(self, request, view, obj):
return True
class SVIPPermission(BasePermission):
#message 表示权限决绝时返回的数据
message = "必须是SVIP"
def has_permission(self, request, view):
if request.user.user_type != 3:
return False
return True #有权访问