Django权限管理测试
测试内容:当我单击登录页面登录的时候页面会弹出当前用户的个人信息

当我点击提交的时候可以看到我当前用户的所有权限:

测试成功,接下来看一下后台的简单代码:
class User(models.Model):
'''
用户信息表,与角色多对多(role)
'''
username = models.CharField(max_length=32,verbose_name="用户名")
password = models.CharField(max_length=32,verbose_name="密码")
email = models.CharField(max_length=32,verbose_name="邮箱")
roles = models.ManyToManyField(to="Role",related_name="user_role",verbose_name="具有的角色",blank=True) class Meta:
verbose_name_plural = "用户表"
def __str__(self):
return self.username class Role(models.Model):
'''
角色表,和权限表多对多(permission)
'''
title = models.CharField(max_length=32,verbose_name="角色名")
permission = models.ManyToManyField(to="Permission",verbose_name="具有的所有权限",related_name="role_permission",blank=True) class Meta:
verbose_name_plural = "角色表"
def __str__(self):
return self.title class Permission(models.Model):
'''
权限表,与用户信息表多对多(User)
'''
url = models.CharField(max_length=32,verbose_name="含正则的URL")
title = models.CharField(max_length=32,verbose_name="标题")
is_menu = models.BooleanField(verbose_name="是否是菜单") class Meta:
verbose_name = "权限表"
def __str__(self):
return self.title
models
from django.shortcuts import render,HttpResponse,redirect
from . import models
# Create your views here. def login(request):
if request.method == 'GET':
return render(request,"login.html")
else:
username = request.POST.get("username")
password = request.POST.get("password")
user = models.User.objects.filter(username=username,password=password).first() #获得当前用户的名字
role_list = user.roles.all().values_list("title") #通过user的外键获取到当前用户的角色
permission_list = user.roles.values_list("permission__title").distinct() #通过双下划线查找到权限,必须去重,否则会重复
if user:
return render(request,"index.html",locals())
else:
return HttpResponse("滚你大爷的蛋蛋...")
views视图
前端页面就不看了,测试效果如上,每个用户登录之后都可以看到他的角色和相应的权限
Django权限管理测试的更多相关文章
- 【Python】django权限管理
参考:http://www.cnblogs.com/esperyong/ 参考:https://docs.djangoproject.com/en/1.8/topics/auth/default/#t ...
- 一.8.django权限管理/drf权限管理
1.什么是权限管理: .权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源 .权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个系 ...
- Django 权限管理(二)
权限菜单展示 1.展示的效果 实现该效果,涉及到的核心点(突破点) 1. 权限分类: (1)菜单权限 (主要用来展示的权限(url)如查看权限 url, 如上图中的每个权限都归类为菜单权限,主要用来 ...
- django权限管理(一)
权限:权限就是一个包含正则的url. Rbac 权限管理: Role-Based Access Control,基于角色的访问控制.用户通过角色与权限进行关联,一个用户可以有多个角色,一个角色可以有多 ...
- Django 权限管理
对于Django而言,虽然自带了一些基本的通用权限限制,但现实中,可能我们更希望自己去定义业务权限划分 Django对于权限这块的部分验证方法 user = request.user user.is_ ...
- django权限管理
当我们为应用创建一个Models, 在同步到数据库里,django默认给了三个权限 ,就是 add, change, delete权限. 首先,我们创建一个perm_test的project, 然后再 ...
- Django之权限管理
Django权限管理之初步完整版 项目背景:这是一个权限管理系统(给一些角色和他们的权限指URL和页面可以删除的按钮比如:增删改查) 使用到了中间件,和初始化权限,使用了admin的后台管理系统. 我 ...
- 【Ecshop】后台菜单与权限管理
主要php文件: 1,admin/includes/inc_menu.php ECSHOP管理中心菜单数组--配置菜单组及URL 2,languages/zh_cn/admin/common.php ...
- [Django]用户权限学习系列之权限管理界面实现
本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ ...
随机推荐
- 利用reverse索引优化like语句的方法详解
在有一些情况下,开发同学经常使用like去实现一些业务需求,当使用like时,我们都知道使用like 前%(like '%111')这种情况是无法使用索引的,那么如何优化此类的SQL呢,下面是一个案例 ...
- [转载]ArchLinux 添加 archlinuxcn 源 密钥错误
http://www.jianshu.com/p/8ed688b0a096 杜龙少 正在检查密钥环里的密钥 [######################] 100% 正在下载所需的密钥...... ...
- CSS之clearfix清除浮动
.clear { clear: both; height: 0; overflow: hidden; display: block; line-height: 0 } .clearfix:afte ...
- C:数据结构与算法之顺序表
顺序表作为数据结构的开端,说明这里面很多基础要学,初学者一开始都会混淆,今天我们来一步一步来建立一个完整的顺序表,可以任我们控制的顺序表,首先先定义一个顺序表 /* Note:Your choice ...
- 回顾2017系列篇(一):最佳的11篇UI/UX设计文章
2017已经接近尾声,在这一年中,设计领域发生了诸多变化.也是时候对2017年做一个总结,本文主要是从2017设计文章入手,列出了个人认为2017设计行业里最重要的UI/UX文章的前11名,供大家参考 ...
- ubuntu12.04destdrop删除不必要的软件
sudo apt-get -y --auto-remove purge unity unity-2d* sudo apt-get -y purge empathy sudo apt-get -y ...
- 扩展1 - Python 获取当前时间的用法
1.先导入库:import datetime 2.获取当前日期和时间:now_time = datetime.datetime.now() 3.格式化成我们想要的日期:strftime() 比如:“2 ...
- ogg12c_静默安装
1.上传压缩包:123010_fbo_ggs_Linux_x64_shiphome.zip 2.解压: unzip 123010_fbo_ggs_Linux_x64_shiphome.zip 3.配置 ...
- jquery隐藏域赋值
<input type="hidden" id="id" value="value"> $("#id的值") ...
- csv文件转json
http://stackoverflow.com/questions/19766266/directly-convert-csv-file-to-json-file-using-the-jackson ...