django实现用户权限

我们经常会有这样的需求,给不同的用户显示不同的页面,这样的功能在Django是怎么实现在的呢?
其实这个逻辑很简单,我们可以先预先设置好几个组,每个组显示的页面都不同,我们可以把用户分配到对应的组里面,具体来说:
第一当然是建立用户表,我们选择重写Django自带的用户表,这样就是继承abstractuser了,然后再settings里填入AUTH_USER_MODEL = ‘users.UserProfile’,在类里面添加我们新的字段即可.
django自带的权限管理更适合后台管理,来管理控制某个用户对后台操作的权限,就是 add, change, delete权限。
那我们怎么自定义权限呢?
首先要在models中建立权限的名称和描述信息,这个信息是在django admin中设置权限时显示的信息.另外还要注意的是,我们必须为url设置name, 因为权限需要和urlname配合使用,
第二,建立一个权限表Permission, 将权限的名称,url名称,请求方法(get or post), 参数列表保存进去
第三步, 定义判断权限的方法,这个就是描述你这个权限是干什么的,你想显示什么样的页面,就在这里面写好定义.
最终逻辑是这样的:
用户发送一个请求(打开一个页面), 先获取url地址,根据url地址得到urlname, 再获取请求方法和参数,然后使用(urlname, 请求方法,参数列表)这样一个映射关系,到数据库中查询,能查询到之后说明这个权限存在;然后再使用request.user.has_perm()来判断该用户是否具有该权限。
有权限,则根据我们第三步定义好的规则去返回,如果没有,则需要我们再定义一个403页面,这样的话,就大功告成啦.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程为Django第八季课程:用户权限管理     本季课程主要用户登录权限管理,内容包含:用户权限管理的总体介绍和分析、RBAC的介绍、角色管理、用户加入角色、xmselect选择框的使用、菜单管理、权限条目的管理、权限的树状结构的呈现、为角色分配权限用户登录后构建权限的列表、在中间件中完善权限的验证、用户登录后构建侧边栏菜单的数据、登录后自动生成侧边栏的树状结构、templatetags的使用等等内容    本案例完整的演示了项目实现过程,虽然不复杂,但涉及的内容非常多,特别是前后端交互的时候,有诸多的坑等着你去踩,好在王老师全程代码呈现,带着大家一起填坑,大大提高学习效率的同时,也培养了大家良好的代码习惯,希望大家一起跟着王进老师学习Python开发。  Django第九季课程课程预告:Web项目发布到公有云  课程目标:本系列课程是从零基础开始并深入讲解Django,最终学会使用Django框架开发企业级的项目。课程知识点详细,项目实战贴近企业需求。本系列课程除了非常详细的讲解Django框架本身的知识点以外,还讲解了web开发中所需要用到的技术,学完本系列课程后,您将独立做出一个具有后台管理系统,并且前端非常优美实用的网站。对于从事一份Python Web开发相关的工作简直轻而易举。 项目展示:  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值