| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | from django.contrib.auth.models import User, Groupfrom django.db.models import Modelfrom mptt.fields import TreeForeignKeyfrom mptt.models import MPTTModelfrom django.db import modelsclass Menu(MPTTModel):    name = models.CharField(max_length=100)    config = models.TextField()    create_at = models.DateTimeField(auto_now_add=True)    create_by = models.ForeignKey(User, blank=True, null=True, on_delete=models.CASCADE)    parent = TreeForeignKey('self', blank=True, null=True, on_delete=models.CASCADE)    code = models.CharField(max_length=100)    class Meta:        app_label = 'basic'        db_table = 'basic_menu'        verbose_name = '报表菜单'        verbose_name_plural = '报表菜单列表'class RouterMenu(MPTTModel):    """    前端路由备份,用作中间表做权限    """    name = models.CharField(max_length=50)    path = models.CharField(max_length=50)    title = models.CharField(max_length=50, null=True)    url = models.CharField(max_length=50)    parent = TreeForeignKey('self', blank=True, null=True, on_delete=models.CASCADE)    class Meta:        verbose_name = '前端菜单'        verbose_name_plural = '前端菜单列表'class GroupRouterMenu(Model):    """    前端菜单的权限与角色绑定    """    group = models.ForeignKey(Group, blank=True, null=True, on_delete=models.CASCADE)    menu = models.ForeignKey(RouterMenu, blank=True, null=True, on_delete=models.CASCADE)    class Meta:        verbose_name = '前端菜单与角色的中间表'        verbose_name_plural = '前端菜单和角色的中间表列表'
 |