前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django Rest Framework 权限(下)

Django Rest Framework 权限(下)

作者头像
小团子
发布2019-07-18 11:33:20
4100
发布2019-07-18 11:33:20
举报
文章被收录于专栏:数据云团

Django Rest Framework 权限(上)

  • 权限类的具体操作
  • 获取所有的权限类
  • 原生的权限类

二、源码解析

Django进阶篇 Rest framework (七) 一样进入,request 的请求流程,进入源码查看具体权限的操作。

① 进入 dispatch() 方法

② 进入 initial() 方法

③ 进入 check_permissions() 方法

④ 权限类的具体操作

在这里可以看到和认证中有类似的操作,获取所有的权限类,并且执行每一个权限类的 has_permission() 方法,而这个方法具体封装了判断权限操作,但是 has_permission() 方法的返回值需要是 False 或者 True。

self.permission_denied(request, message=getattr(permission, "message", None)) 说明可以在权限类中重写 message 属性,来定义权限不通过时的提示信息。

进入 self.get_permissions()

⑤ 获取所有的权限类

在 APIView 中有定义默认的权限类,因此也可以通过全局配置的方法配置权限类。

⑥ 原生的权限类

像认证那样,django rest framework 中也有权限类。

三、总结

权限的流程,其实和上一章节 Django进阶篇 Rest framework (一) 的认证流程是一样的,认证类封装到 request 中,然后再调用认证类的方法,不过这里的方法返回值不再是像认证组件那样的直接返回一个认证的对象,而是返回一个 True 或者 False 值表示认证过的对象是否有某些权限,再进行具体操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档