根据前篇介绍,权限主要涉及到用户、职位、权限、权限组(二级菜单)和菜单(主)五张表。下面是这几张表的结构
class Users(models.Model):
username = models.CharField(max_length=32, verbose_name="用户名")
password = models.CharField(max_length=128, verbose_name="密码")
position = models.ForeignKey(to='Position', blank=True, null=True, verbose_name="职位名", related_name="userpos") #related_name指定使用外键反查的名称
def __str__(self):
return self.username
class Meta:
verbose_name_plural = "用户表"
class Position(models.Model):
name = models.CharField(max_length=32, 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):
url = models.CharField(max_length=32, blank=True, null=True, verbose_name="路径")
name = models.CharField(max_length=32, blank=True, null=True, verbose_name="显示")
group = 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=32, blank=True, null=True, verbose_name="组名")
title = 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):
title = models.CharField(max_length=32, blank=True, null=True, verbose_name="菜单名")
def __str__(self):
return self.title
class Meta:
verbose_name_plural = "菜单表"
创建表,并添加数据
执行python manage.py makemigrations
python manage.py migrate
创建了以上几张表,然后再往表中添加一些数据