1.简介
设置哪种用户的权限可以做什么事
2.用法
在MyAuth文件编写权限类,
from rest_framework.permissions import BasePermission
代码如下
注意:这里view变量是把视图传进去了,可以用print查看一下。
from rest_framework.permissions import BasePermissionclass UserPermission(BasePermission): # message是出错显示的中文 message = '您没有权限查看' def has_permission(self, request, view): #认证走完,则能拿到 user_type = request.user.user_type # 取出用户类型对应的文字 # 固定用法:get_字段名字_display() user_type_name = request.user.get_user_type_display() print(user_type_name) if user_type == 2: return True else: return False
在views代码如下
class Books(APIView): authentication_classes = [MyAuth.LoginAuth,] permission_classes = [MyAuth.UserPermission,] def get(self,request): response={ 'status':100,'msg':'查询成功'} books=models.Book.objects.all() book_ser=MySer.BookSerializer(books,many=True) response['data']=book_ser.data return JsonResponse(response,safe=False)
注意,要走完auth认证,才能走到权限认证,这样才能拿到request.user
设置全局使用,要在settings里进行设置
REST_FRAMEWORK={ 'DEFAULT_AUTHENTICATION_CLASSES':['app01.MyAuth.LoginAuth',],#认证组件 'DEFAULT_PERMISSION_CLASSES':['app01.MyAuth.UserPermission',]#权限组件}