1. 程式人生 > >AI-DRF許可權、頻率

AI-DRF許可權、頻率

 

許可權

邏輯:寫一個許可權元件,套入到需要加許可權的類中,元件中寫業務邏輯。業務邏輯:首先提前在user使用者中加入欄位user_type,寫好type=((1,"VIP"),(2,"SVIP"),(3,"SSVIP")),user_type=models.IntegerField(choices=type),當user_type>=2時,

表示可以訪問資源,按照原始碼流程,直接返回True即可,反之亦然。

#url.py
url(r'^course/', views.Courseview.as_view()),
#views.py
class SSVIPPermission
(object):
def get_permissions(self,request,view): #原始碼中摳的函式,view可有可無,一般不用 if request.user.user_type>=2: return True #原始碼中,如果許可權user_type大於等於2,相當於是svip、ssvip,表示可以訪問資源;
                                          
return False #返回False表示無許可權 class Courseview(APIView): permission_classes
=[SSVIPPermission] #將許可權元件加入course這個資源類。 def get(self,request): # 使用序列化傳資料 course_list=Course.objects.all() cs=CourseSerializer(course_list,many=True) #如果有多個欄位,不可能使用course.desc這種方式,
                                                 需要序列化簡便!
print(cs.data)
return Response(cs.data) #我的序列化介面 def post(self,request): print(request.data) cs=CourseSerializer(data=request.data) if cs.is_valid(): #校驗 Course.objects.create(**request.data) return Response(cs.data) #序列化資料 else: return Response(cs.errors) # 序列化錯誤資訊

 

頻率