博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
drf权限组件
阅读量:5051 次
发布时间:2019-06-12

本文共 1294 字,大约阅读时间需要 4 分钟。

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
View Code

在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)
View Code

注意,要走完auth认证,才能走到权限认证,这样才能拿到request.user

设置全局使用,要在settings里进行设置

REST_FRAMEWORK={    'DEFAULT_AUTHENTICATION_CLASSES':['app01.MyAuth.LoginAuth',],#认证组件    'DEFAULT_PERMISSION_CLASSES':['app01.MyAuth.UserPermission',]#权限组件}
View Code

 

转载于:https://www.cnblogs.com/xufengnian/p/10160615.html

你可能感兴趣的文章
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>
alue of type java.lang.String cannot be converted to JSONObject
查看>>
搜索引擎选择: Elasticsearch与Solr
查看>>
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>