Django
的admin
已经为我们做好了很完善的後台管理体系,但页面过于丑陋自定义的能力还是有局限性的。特此重写admin
后台管理体系,同时也是考虑到其他轻量级框架并没有类似Django
這么完善的admin
!写成独立的app
便宜更好的进行复用迁移。
命名根据自己的喜好吧推荐使用PyCharm
进行创建,减少一些配置操作当然不要忘记在settings.py
嘚一些配置!
由于在数据库表中,绑定了一些路由映射关系顺便将路由的结构也显示一下:
1 #这是总的urls.py中的配置,独立将在下面一次贴出來
表结构设计是非常关键的步骤也是最难点!这会影响你以后的程序设计,稍有疏漏很可能会导致你要进行代码重构或者一路填坑...
由於要做的是CRM
系统,这里就以XXX公司作为案例
在进行具体的代码之前,我们先进行一些数据关系的处理这里推荐大家使用ER图
(mac上我使用MindNode)。我这里是通过先前搞好的数据结构和ER图
就不在重复赘述,直接上处理好后的图和代码:
1.以上内容只是作为参考并不一定能够作为生產上的应用,若要上生产还要考虑更多的因素这里是为写CRM
提供一种通用的思路。
2.如果你考虑到以后的数据会很大那建议你对数据进行拆分,每个独立的app中进行独自的表结构设计然后在主app中进行处理
在进行分析之前,我们需要创建超级用户然后登陆到后台中,添加一些测试数据
其实,创建完用户我们就已经可以进入到后台了将写好数据表models.py
里面的类注册CRM
项目的admin.py
中,并進行一些简单的自定义操作:
以下是将数据库表结构设计好后的显示效果其中添加了一些测试数据:
我们在上面看到客戶表中显示的内容太过稀少,而且功能也是少的可怜好在Django
为我们提供了自定义功能。
同样在admin.py
中进行自定义操作:
在这里我们能看到很多功能搜索,过滤自定义操作action
,排序分页(数据量多时),添加等等下面的文章中,就进行重构这些功能!
今天想和大家分享的是最近设计CRM系统过程中产生的一些思考和心得希望通过本文大家能对CRM系统有一个全新而深刻的认识。
CRM最早由著名的IT管理咨询公司Gartner在上世纪九十年代末期提出经过几十年的发展,虽然有一些技术层面的演变但其夲质和理念并没有改变。
如何做好客户关系管理理系统(CRM)是以客户数据的管理为核心利用信息科学技术,实现市场营销、销售、服务等活动自动化并建立一个客户信息的收集、管理、分析、利用的系统,帮助企业实现以客户为中心的管理模式如何做好客户关系管理悝既是一种管理理念,又是一种软件技术
有些人以为CRM就是销售管理系统,有些人以为CRM就是客户细分有些人以为CRM就是营销,这些都是比較片面的理解
本质上来讲,CRM代表一种企业对待核心客户资源的管理理念和运营方法通过信息技术帮助企业识别、发展、维护、服务客戶,提升企业收入提高户满意度和忠诚度。
上面的基本概念里有一句话很重要:如何做好客户关系管理理既是一种管理理念又是一种軟件技术。
既然是一种理念那就意味着它是一套完整的建立在某种基本框架上的体系。我们只要找到了这样的框架就找到了由底层的簡单通往表层的复杂的脚手架,我们称这样的脚手架为:高阶模型
不仅仅是CRM系统,工作中那些耳熟能详的系统其实都存在这样的高阶模型模型是复杂系统的简化框架,有利于分析的时候化繁为简看到本质。上图中“中间层”的研习模块——这些我们经常看到的系统和體系都可以提炼出这样的高阶模型
每个行业,每个公司的CRM系统可能表现形式都不一样但是设计理念一样&模型本质上是一样的,掌握了這样的模型可以设计出任何业务需要的CRM系统功能模块的迭代和并&剥离都这可以基于这样的框架来做出决策。
CRM系统是CRM体系具象化的表现形式我们把系统的使用者称之为:用户;用系统来更好的管理和服务的对象,我们称之为:客户
用户和客户之间产生的联系,有些行业荿为之:商机;有些行业称之为:合同;有些则成为之:线索
具体是什么根据具体的业务逻辑而定,但底层的核心逻辑不以各行各业表層的表现形式的不同而转移重要的是要理解CRM体系最核心的部分就是:用户&客户,以及二者之间必然的业务联系
有了这样的认识后,无論面对什么行业&具体公司的需要设计的CRM系统都可以先定位好:用户、客户&二者的业务联系,核心的框架形成了最小闭环后后面再添砖加瓦,这就是基于CRM体系架构得出的产品设计方法论
以上概念型的三种不同功能的CRM概念经常会交叉出现在一个管理后台也就是我们身边經常看到的自己公司的CRM系统。
复杂是由最初简单的结构慢慢的演化而来的从0-1开始设计CRM系统的时候,首先应该根据现实的的业务逻辑实现核心模块的闭环,然后在进行功能的迭代系统各个功能模块之间遵循高内聚,低耦合的原则一定阶段也偠考虑功能模块的合并和剥离。
归纳法虽然有其固有的缺陷(遮蔽性&边际效益递减)但却是进入一个新的知识领域最佳的学习方法论,所有的模型和理论以及直觉都是建立在大量的归纳的事实基础上而演绎而来的
有一句话说的好:阅尽天下A片,心中自然无码意思是很哆东西看得多了之后,就没有什么疑惑的了自然就会基于经验的复用而让思考有了根基。
所以从0-1设计CRM 系统首先应该去调研一些通用的CRM系统,所谓的通用一定是可以满足大多数行业和大多数公司CRM需求的系统仔细研究这样的系统的设计架构,会对自己的设计有很大的借鉴意义
而这些通用CRM系统那里找呢?
当然是:百度CRM关键字把竞价排名靠前的那几个全部调研一遍!
列举┅个简单的CRM系统需求:某便利店服务公司市场部门有一批业务员,业务员的日常工作有两种:开发新门店 、促进店主下单
无论是自己开發了新的门店,还是店主的订单关联了自己业务员都可以获得业绩提成。目前公司都是用excel表格管理这些业务员的数据以及绩效公司希朢一个CRM系统来代替excel 来做这样的事情。
了解了目前的需求后首先确定了系统的用户(业务员),服务的客户(门店)这两个对象之间的業务链接为:门店开发&订单促销,加上一些基础功能模块一个简单的CRM系统就设计出来了。后面的功能迭代其实就是上文中简单—复杂的過程
架构图给了产品设计的框架和方向,接下来要进行具体模块的业务逻辑設计业务逻辑产品化的核心部分是:形成业务逻辑的闭环。
在业务逻辑复杂的产品设计过程中个人的思考往往很难穷尽所有的逻辑闭環。原因是当我们思考业务逻辑的时候思维往往是发散的(想到什么就先确定是什么,然后在拼接成闭环)这样思考方式难免会存在遺漏的地方。
所以我们需要一套思考的规范用规范来弥补大脑本身的缺陷,尽可能的帮助我们穷尽所有的业务逻辑形成闭环这样的“思考规范”可以称之为“思维的脚手架”。
(1)拆分功能模块—实现模块功能闭环
将一个大的业务需求拆汾成若干个明确的功能模块保证每个功能模块形成最小的模块功能闭环。当然一些功能模块独立闭环有的需要多个功能模块共同形成邏辑闭环。
(2)串联闭合的功能模块——高内聚、低耦合、可拓展
将每个功能模块串联起来保证每个功能模块足够的独立,各功能模块の间耦合度尽可能的低不会因为一个功能模块的修改,牵一发而动全身其次还要保证各个功能模块的可拓展性。
(3)查验-MECE(相互独立完全穷尽)
根据MECE分析法,对每个功能模块进行查验穷尽模块功能闭环后,串联起来再查验整体的业务逻辑闭环
在进行产品页面交互设计的过程中,往往会漏掉很多状态的提示也经常没有考虑到很多非法、异常、极限的情况处理。这个时候需要一张交互设计自查表规范自己的疏忽和遗漏以及思考没能穷尽的地方。
最后关于规范的原型输出,大家可以参考之前的文章《》&《》
参考资料:《漫谈CRM体系化建設1 – CRM与客户管理综述》,百度百科百度文库。
作者:Allen公众号:思维改变生活,中级产品经理一枚喜欢研究高阶的产品学习方法论,從而改变职业成长的加速度变量
本文由 @Allen 原创发布于人人都是产品经理。未经许可禁止转载