美文网首页
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