内容简介:models中创建类:五个类,七张表角色表和权限表是多对多的关系(一个角色可以有多个权限,一个权限可以对应多个角色);用户表和角色表是多对多的关系(一个用户可以有多个角色,一个角色有多个用户);
一、设计表结构
models中创建类:五个类,七张表
- 角色表:
- 用户表:
- 权限表:
- 权限组表:
- 菜单表:
角色表和权限表是多对多的关系(一个角色可以有多个权限,一个权限可以对应多个角色);
用户表和角色表是多对多的关系(一个用户可以有多个角色,一个角色有多个用户);
所以有会多生成两张关系表;
一个菜单下面有多个组;
一个组下面有多个菜单;
一个菜单下面有多个权限;
###################权限部分 class UserInfo(models.Model): ##用户表 name = models.CharField(max_length=16, blank=True, null=True, verbose_name="用户名") password = models.CharField(max_length=128, blank=True, null=True, verbose_name="密码") email = models.CharField(max_length=32, verbose_name="邮箱") userPosition = models.ForeignKey(to="Position", blank=True, null=True, verbose_name="职位", related_name="userposi") # 用户和职位是一对多的关系 def __str__(self): return self.name class Meta: verbose_name_plural = "用户表" class Position(models.Model): ##职位表 name = models.CharField(max_length=16, blank=True, null=True, verbose_name="职位名") auth = models.ManyToManyField(to='Auth', blank=True, null=True, verbose_name="权限", related_name="posauth") def __str__(self): return self.name class Meta: verbose_name_plural = "职位表" class Auth(models.Model): ##权限表 name = models.CharField(max_length=64, blank=True, null=True, verbose_name="显示路径名") url = models.CharField(max_length=64, blank=True, null=True, verbose_name="路径") groupauth = models.ForeignKey(to='AuthGroup', blank=True, null=True, verbose_name="组权限", related_name="authgroup") #组和权限是一对多的关系,一个组有多个权限 def __str__(self): return self.name class Meta: verbose_name_plural = "权限表" class AuthGroup(models.Model): ##权限组表 name = models.CharField(max_length=16, blank=True, null=True, verbose_name="权限组名") menu = models.ForeignKey(to='Menu', blank=True, null=True, verbose_name="菜单", related_name='groupmenu') #一个组下有多个菜单 def __str__(self): return self.name class Meta: verbose_name_plural = "权限组表" class Menu(models.Model): ##菜单表 name = models.CharField(max_length=16, blank=True, null=True, verbose_name="菜单名") def __str__(self): return self.name class Meta: verbose_name_plural = "菜单表"
1.1、创建表:
python manage.py makemigrations python manage.py migrate
1.2、注册表:
from django.contrib import admin from host import models admin.site.register(models.UserInfo) admin.site.register(models.Position) admin.site.register(models.Auth) admin.site.register(models.AuthGroup) admin.site.register(models.Menu)
二、登录后台:
2.1、设计路径:
urls:[ "user/list.html", "user/add.html"/, "user/(\d+)/update.html", "user/(\d+)/del.html", ]
2.2、 对应的urls.py
urlpatterns = [ url(r'user/list.html$', views.List.as_view()), url(r'user/add.html$', views.Add.as_view()), url(r'user/(\d+)/update.html', views.Update.as_view()), ##(\d+) 用来匹配不同表单的id url(r'user/(\d+)/del.html', views.Del.as_view()), ]
2.3、对应的权限表:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Django框架–权限代码+左侧菜单和权限应用
- Spring-Security权限管理框架(1)——根据角色权限登录
- 三大渗透框架权限维持
- ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理
- 基于注解的6.0权限动态请求框架——JPermission
- YuebonCore 1.0.1 发布,权限管理及快速开发框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。