python 权限

权限

一 建表

  最基础的权限表包括三张表:用户表,角色表,权限表。用户表与角色表,角色表与权限表均为多对多关系。

 

 图中app01是建项目时添加的app,rbac是新建项目之后添加的app,增强解耦性,可移到其他项目使用。

表关系:

from django.db import models

# Create your models here.


class User(models.Model):
    name = models.CharField(max_length=32,verbose_name="用户名")
    pwd = models.CharField(max_length=32,verbose_name="密码")
    roles = models.ManyToManyField(to="Role")

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "用户表"
        db_table = verbose_name
        verbose_name_plural = verbose_name

class Role(models.Model):
    name = models.CharField(max_length=32, verbose_name="角色")
    permissions = models.ManyToManyField(to="Permission")


    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "角色表"
        db_table = verbose_name
        verbose_name_plural = verbose_name


class Permission(models.Model):
    title = models.CharField(max_length=32, verbose_name="权限")
    url = models.CharField(max_length=32, verbose_name="路径")

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = "权限表"
        db_table = verbose_name
        verbose_name_plural = verbose_name

在rbac下的admin添加如下内容:通过访问127.0.0.1/admin,进行数据录入

from django.contrib import admin

# Register your models here.

from .models import *

admin.site.register(User)
admin.site.register(Role)
admin.site.register(Permission)

 

posted @ 2018-04-25 22:48  amyleell  阅读(208)  评论(0)    收藏  举报