rest_framework-權限-總結完結篇
阿新 • • 發佈:2018-07-29
frame user rom mis 代碼 turn 必須 base 頁面
#權限
#創建一個權限類 在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 #有權訪問
rest_framework-權限-總結完結篇