首页 > 其他 > 详细

2-crm项目-kingadmin

时间:2020-07-29 22:23:06      阅读:59      评论:0      收藏:0      [点我收藏+]

创建自己的后台系统

"""
django自带后台admin的使用:
1,注册每个表,
2,创建超级管理员,用来登陆
3,登陆进去里面有user和group,这是django自带的,
4,你可以在user中,创建一个用户,然后登陆,是没有任何的权限的,
5,可以给新建的用户,添加权限,但是这个权限级别只能到表,不能到更具体的了,
6,对于表名,是显示的英文,但是你可以配置表的元信息来改变成为汉字,
7,我们可以使用django自带的认证系统,来创建自己的用户表,

########################## 我们要一个自己的系统, 需求: 1,不同角色进去之后显示不一样的页面, 比如销售看到的学生表,是一个表格, 比如讲师看到的学员表,也是一个表格,
怎么实现???
1,笨办法就是每一个表对应的页面都写一遍,但是这样会导致大量的代码冗余,
2,页面应该都是一个页面,只是说展示的数据不一样,然后不一样的部分进行定制化,
3,每一个人进去的菜单,都是动态的,这个菜单也可以使用一个页面,只是展示的菜单数据不同而已,
4,现在来实现前端的展示,前端可以使用bootstrap,可以使用他们提供的页面模板,

 """

 

使用bootstrap模板的方法

第一步:下载bootstrap模板
进入bootstrap官网---点击bootstrap3----点击起步----找到基本模板--进入模块--右键另存为(全部网页)--打开文件夹会有一个文件夹和一个html
把文件夹的内容都保持起来:Dashboard Template for Bootstrap_files
第二步:在templates,创建一个base,
只保存静态的部分,只保存css,js,等,可以把除body的部分都放到base,
把之前下载的模板的html全部放到base,然后把整个body移出去放到index

第三步:在templates,创建一个index,
创建一个index,然后继承base,body放到这个index

第四步:创建url,创建view视图,
先把这个网页展示出来,这个时候应该是没有样式的,

第五步:把静态文件加进来,
创建一个static文件夹,
需要在settings里面进行配置,
STATIC_URL = ‘/static/‘ 这是一个别名,下面引号里面路径写成什么无所谓,使用的时候就用这个,
STATICFILES_DIRS = (
  os.path.join(BASE_DIR, "statics"),
)
这是一个元组,很明显可以放很多个静态文件路径,
在static文件夹下面新建几个文件夹,css,js,fonts,img,然后把第一步下载的模板带的文件夹中的js和css放到对应的文件夹,
bootstrap.min.js,jquery.min.js,这个min的意思是压缩的,生产生都是这样的,省空间,这两个文件是必须的,其他的都无所谓,

第六步:修改base文件,
修改的第一步是识别,是判断,你需要具备一定的前端知识,
把所有的css路径改掉,所有的js路径改掉,js是可以放到body外边的,

第七步:修改index文件,
把不需要的内容删除

 

动态菜单的实现

需求:
一个角色要显示哪些菜单,不同的角色进去,要显示不一样的菜单,要怎么做?
1,他能看到哪些菜单,需要定义一下,而且这个数据需要在数据库存放,
2,url和角色怎么关联,肯定是数据库里面关联,crm_roles_menu,crm_roles,crm_menu这个角色和菜单是多对多的,
就是一个角色可以有多个菜单,菜单也可以有属于多个角色,url可以给url起一个别名,然后保存这个别名,

原理:
员工有一个字段叫做角色,user
角色下面有很多的菜单,一个菜单也可以属于多个角色,roles,menu,多对多,
roles表
name,menu(多对多)
menu表,
name,url_name(这是url的别名,通过在url类设置每一个url的路径别名,放在这里)

3,创建学生主页面,和销售人员主页面,然后继承index.html, 4,注意,user表中和role表是多对多的, 对于django自带的认证系统还是理解的不够深刻,

 

 

 

 ###############  展示所有注册的表   ###############

"""

实现学生库-----学生列表页面
1,有列表
2,搜索
3,有过滤
4,有分页
5,有批量操作,

要做成一个通用的页面,每个页面不配置都一样,然后特殊的部分通过 配置来实现,
你把这个搞出来了,就相当于自己写了一个admin了,
我们可以做成一个模块,可以应用到别的项目,单独做成一个app,

分析url,就是admin/appname/tablename
通过url找到这个表名,这个可以使用反射来找到,就可以把表里面的数据取出来,
然后把数据放到页面,页面上就可以传什么表就展示什么表了,
这是基本的思路

代码怎么写?
首先第一步,先实现一个所有表的列表页面,
1,创建页面,table_index.html
2,继承base,把菜单的部分删除掉,保留单行条,
3,使用bootstrap的面板,上面是appname,下面是tablename,

现在最重要的是解决为什么一注册就展示了这个表,
思路就是创建了一个字典:
{appname:{tablename: tableadminclass,
            tablename: tableadminclass,
            },
appname:{tablename: tableadminclass,
            tablename: tableadminclass,
            },
}

怎么通过表名获取到modelclass,和app的名字呢?
1,model_class._meta.app_label
2,model_class._meta.model_name

怎么把admin_class 和model_class 进行关联呢?
admin_class.model = model_class 加了一个属性,利于前端调用,



"""

 

 ###############  展示学生列表页面   ###############

 

角色和需求
1,销售人员,
1.1,要对学生进行维护,可以对学生进行查看,新增,删除,修改,跟进等操作
代码上的要求:
增删查改各使用一个页面,然后根据每一个表的配置来控制,展示的字段,筛选字典,查询字段,批量操作,要求是可配置的,
1.2,最复杂的是学生查看页面,有查询,有筛选,有批量,有表头,有列表,有分页,
1.3,要有学生报名的业务,
1.4,学生池的概念,可以把没有成交可能的放入学生池,也可以把你认为有可能成交的学生拉入自己的名下,
2,讲师
1.1,要批量生成上课记录,对学生考勤
1.2,每天的作业成绩需要录入
3,学生
1.1,要交作业,
4,老板
要看报表,
5,登陆,注册,菜单展示,权限控制,

 

 

 ###############  展示学生列表页面   ###############

 

###############  crm需求分析    ###############

 

讲师和学生:
1,批量生成上课记录,
2,考勤点名,
3,录入成绩,
4,显示成绩
5,上传作业,os模块,
6,下载成绩,

 

 

 

###############  crm需求分析    ###############

 

销售和学生
1,公共学生,
2,根据学生
3,绑定学生
4,取消绑定

 

 

 

 ###############  展示学生列表页面   ###############

2-crm项目-kingadmin

原文:https://www.cnblogs.com/andy0816/p/13398998.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!