1. 程式人生 > >2134

2134

 

  

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'web.apps.WebConfig',
        'rbac.apps.RbacConfig
', ]

 

from django.db import models


class Menu(models.Model):
    """
    選單表  一級選單
    """
    title = models.CharField(max_length=32)
    icon = models.CharField(max_length=64, null=True, blank=True, verbose_name='圖示')
    # 預設值為1
    weight = models.IntegerField(default=1, verbose_name='
顯示權重') def __str__(self): return self.title class Permission(models.Model): """ 許可權表 可以做二級選單的許可權 menu 關聯 選單表 不可以做選單的許可權 menu=null """ url = models.CharField(max_length=32, verbose_name='許可權') title = models.CharField(max_length=32, verbose_name='
標題') menu = models.ForeignKey('Menu', null=True, blank=True) # 自己關聯自己 parent = models.ForeignKey('self', null=True, blank=True) # 寫法二 # parent = models.ForeignKey('Permission', null=True, blank=True) name = models.CharField(max_length=32, verbose_name='URL別名') class Meta: verbose_name_plural = '許可權' verbose_name = '許可權' def __str__(self): return self.title 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 User(models.Model): """ 使用者表 """ name = models.CharField(max_length=32, verbose_name='名稱') password = models.CharField(max_length=32, verbose_name='密碼') roles = models.ManyToManyField('Role', verbose_name='使用者擁有的角色', blank=True) def __str__(self): return self.name