1、权限组的表分析
auth_group --- 是存储权限分组
auth_permission --- 存放用户可以使用那个表
auth_group_permission --- 连接权限分组和能使用权限的表
auth_users_group --- 连接用户信息表和权限分组表
后台的功能实现
# 在apps/admin/views.py中创建如下类: class GroupsManageView(View): """ /admin/groups/
渲染页面和发送前端展示数据 """ def get(self,request): groups = Group.objects.values('id','name').annotate(num_users=Count('user')).\ order_by('-num_users','id') return render(request,'admin/user/groups_manage.html',locals()) class GroupsAddView(View): """ /admin/groups/add/
增加管理组 """ def get(self,request): permissions = Permission.objects.only('id').all() return render(request,'admin/user/groups_add.html',locals()) def post(self,request): json_data = request.body if not json_data: return to_json_data(errno=Code.PARAMERR, errmsg=error_map[Code.PARAMERR]) dict_data = json.loads(json_data.decode('utf8')) # 取出组名,进行判断 group_name = dict_data.get('name', '').strip() if not group_name: return to_json_data(errno=Code.PARAMERR, errmsg='组名为空') one_group, is_created = Group.objects.get_or_create(name=group_name) if not is_created: return to_json_data(errno=Code.DATAEXIST, errmsg='组名已存在') # 取出权限 group_permissions = dict_data.get('group_permissions') if not group_permissions: return to_json_data(errno=Code.PARAMERR, errmsg='权限参数为空') try: permissions_set = set(int(i) for i in group_permissions) except Exception as e: logger.info('传的权限参数异常:\n{}'.format(e)) return to_json_data(errno=Code.PARAMERR, errmsg=