1.什么是crm
客户关系管理系统 ,以客户数据为中心建立一个信息收集、管理、分析和利用的信息系统
2.业务逻辑相关使用crm-app完成
1)路由项目分发到crm-app (别名 传参 命名空间)
用户增删改查
部门增删改查
班级增删改查
2)对应了3个视图函数
dep.py
classes.py
user.py
login.py
3)models的设计表
用户表(继承rbac的类) ,部门表 ,班级表(外键: 校区表+课程表)
4)ModelFrom(重点功能)
生成标签
数据清洗
5)html中关注的点()
ajax实现异步删除 ,特别的效果
循环展示modelform对象
3.rbac权限相关rbac-app
1)权限的model设计
权限表
一级菜单表
角色表
rbacuser表 (crm的user需要继承)
2)init_permission初始化权限相关放入request
permission_dict 权限字典
menu_dict 菜单字典
login函数中使用(保存登录状态)
3)中间件rbac校验process_request
白名单
登录
登录后不需权限url
登录后需权限url
4)权限设计到按钮级别 simple_tags
使用权限表的name字段来判断 ,是否在该用户request的权限字典中
5)页码
页码实例化成类 ,在视图函数中使用
定义底部页码长度 ,每页显示多少条数据
切片索引
左右极值判断
6)业务记录保留
使用simple_tag ,从request中获取当前url的页码参数, 页面按钮使用simple_tag做成代页码的按钮
使用视图函数中的提交时候 ,获取到当前的页码 ,重定向时拼接页码即可
7)菜单
一级菜单通过Menu表存储(根据weight权重做成有序字典排序) ,二级菜单外键到一级菜单 ,非菜单权限归属外键连接到自身的二级菜单
构建menu_dict,通过inclusion_tag完成菜单
8)面包屑
面包屑导航 ,暂时依据菜单写了两层 ,首页写死了 ,,,
通过inclusion_tag从permission_dict拿数据 ,生成面包屑 ,在页面中循环展示()