美文网首页
24_rest-framework权限组件

24_rest-framework权限组件

作者: knot98 | 来源:发表于2018-12-13 16:43 被阅读0次

    rest-framework权限组件

    一、权限简介

    只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制

    二、简单使用

    自定义权限类:
    from rest_framework.permissions import BasePermission
    
    class UserPermission(BasePermission):
        message = ''
    
        def has_permission(self, request, view):
            user_type = request.user.user_type
            user_type_name = request.user.get_user_type_display()
            self.message = '您当前权限为 [' + user_type_name + '] 不能执行该操作!'
            if user_type == 2:
                return True
            else:
                return False
    
    models.py:
    class UserInfo(models.Model):
        nid = models.AutoField(primary_key=True)
        username = models.CharField(max_length=32)
        password = models.CharField(max_length=64)
        user_choice = ((0, '普通用户'), (1, '会员'), (2, '超级会员'))
        user_type = models.IntegerField(choices=user_choice, default=0)
    
    全局使用settings.py文件配置:
    # 设置为全局使用
    REST_FRAMEWORK = {
        'DEFAULT_PERMISSION_CLASSES': ['app01.custom.MyPermissions.UserPermission', ]
    }
    
    局部使用:
    class Book(APIView):
        # 在想要使用的视图类内加入:MyPermissions.UserPermission为导入的自定义权限类
        permission_classes = [MyPermissions.UserPermission, ]
        def get(self, request):
            book_list = models.Book.objects.all()
            book_ser = MySerializers.BookSerializers(book_list, many=True)
            return JsonResponse(book_ser.data, safe=False)
    

    更多详细信息

    相关文章

      网友评论

          本文标题:24_rest-framework权限组件

          本文链接:https://www.haomeiwen.com/subject/mnsbhqtx.html