一级菜单

1.model设计

from django.db import models            
class Permission(models.Model):
    url = models.CharField(max_length=64, verbose_name='权限')
    title = models.CharField(max_length=32, verbose_name='标题')  # 备注这个url是做什么的
    icon = models.CharField(max_length=64, null=True, blank=True,verbose_name='图标') # 存放菜单前面的图标
    is_menu = models.BooleanField(default=False) # 用来判断(此url)是否是菜单
            
    def __str__(self):
        return self.title
            
    class Meta:
        verbose_name_plural = '权限管理'
            
            
class Role(models.Model):
    name = models.CharField(max_length=32, verbose_name='角色')
    permissions = models.ManyToManyField(Permission, verbose_name='角色拥有的权限', blank=True)
            
    def __str__(self):
        return self.name
            
    class Meta:
        verbose_name_plural = '角色管理'
            
            
class User(models.Model):
    username = models.CharField(max_length=32, verbose_name='用户名',unique=True)
    password = models.CharField(max_length=32, verbose_name='密码')
    roles = models.ManyToManyField(Role, verbose_name='用户的角色', blank=True)
            
    def __str__(self):
        return self.username
            
    class Meta:
        verbose_name_plural = '用户管理'
models.py

相关文章: