myblog-django中如何创建RBAC权限管理模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
在user/model.py 下写入以下模型
from django.dbimport models from django.contrib.auth.modelsimport AbstractUser # Create your models here. class Menu(models.Model): name = models.CharField(max_length=25,unique=True,verbose_name='菜单名') url = models.CharField(max_length=125,unique=True,null=True,blank=True,verbose_name='URL') parent = models.ForeignKey("self",null=True,blank=True,on_delete=models.SET_NULL,verbose_name='父菜单') code = models.CharField(max_length=50,null=True,blank=True,verbose_name='编码') icon = models.CharField(max_length=50,null=True,blank=True,verbose_name='图标') def __str__(self): return self.name class Meta: verbose_name='菜单' verbose_name_plural=verbose_name db_table='tb_menu' class Role(models.Model): """ 角色绑定 """ name = models.CharField(max_length=35,unique=True,verbose_name='角色名') permissions = models.ManyToManyField(Menu,blank=True,verbose_name='URL授权') desc = models.CharField(max_length=50,blank=True,null=True,verbose_name="描述") def __str__(self): return self.name class Meta: verbose_name='角色' verbose_name_plural=verbose_name db_table='tb_role' class UserProfile(AbstractUser): name = models.CharField(max_length=20,default="",verbose_name="姓名") birthday = models.DateField(null=True,blank=True,verbose_name="出生日期") gender = models.CharField(max_length=10,choices=(("male","男"),("female","女")),default="nale",verbose_name="性别") image = models.ImageField(upload_to="image/avatar/%Y/%m",default="iamge/avatar/default.jpg",max_length=100,null=True,blank=True) roles = models.ManyToManyField(Role,verbose_name="角色",blank=True) def __str__(self): return self.name class Meta: verbose_name="用户信息" verbose_name_plural=verbose_name db_table="tb_userprofile" ordering=['id']
然后制作迁移脚本
python manage.py makemigrations
执行迁移脚本
python manage.py migrate
此时数据库的数据表也创建成功
关于myblog-django中如何创建RBAC权限管理模型问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。