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权限管理模型问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/kevinguocn/blog/4908854