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) # 序列化错误信息

频率

猜你喜欢

转载自www.cnblogs.com/djfboai/p/10084663.html
今日推荐