注意本项目是针对培训学校开发简化的CRM

CRM简介

CRM全称:customer relationship management

无CRM的痛点

没有CMR的缺点及痛点:

  1. 每个销售会通过Excel来统计客户信息,造成信息不能同步和共享
  2. 客户信息没有记录和跟进信息
  3. 会造成抢单问题
  4. 无法统计成单率和报表
  5. 没有和客户的沟通记录
  6. 客户信息表,唯一的客户端ID
  7. 一对多的跟进记录
  8. 客户状态,报名和未报名
  9. 客户来源分析
  10. 学员报名信息
  11. 学员可以报多个课程,每个课程的每节课程都有成绩,以及成绩排名
  12. 班级信息

将痛点转换成需求

班级—>课程节次—>学员上课记录

  1. 课程信息
  2. 缴费记录
  3. 用户使用场景分析
  4. 角色管理
  5. 权限管理
  6. 动态菜单
  7. 在线交作业

关于表结构

后续完整后补充

关于django的admin

知识点回顾:

使用django中的admin的方法:

1、models.py中创建好表的类

2、执行python3 manager.py makemigrations

3、执行python3 manager.py migrate

4、上述操作完成后默认是在项目文件下生成db.sqlite3数据库文件

5、 在admin.py文件中先导入modes,然后将表进行注册,该项目的代码例子如下:

from django.contrib import admin
# Register your models here.
from crm import models
admin.site.register(models.Customer)
admin.site.register(models.StudyRecord)
admin.site.register(models.Role)
admin.site.register(models.Menu)
admin.site.register(models.Enrollment)
admin.site.register(models.ClassList)
admin.site.register(models.Branch)
admin.site.register(models.CourseRecord)
admin.site.register(models.Course)
admin.site.register(models.FollowUpRecord)
admin.site.register(models.UserProfile)

6、 最后执行python3 manage.py createsuperuser,创建admin用户

如何调用django中admin的认证功能

如果想要调用django中的admin认证需要:

在models.py文件中创建表的类的时候,先导入一个模块

from django.contrib.auth.models import User

然后在用户信息的类中,通过和admin中user表建立一对一的关系,从而实现认证功能

class UserProfile(models.Model):'''用户信息'''user = models.OneToOneField(User)name = models.CharField(max_length=32)

这样就可以调用django中admin的认证

在views.py函数中使用admin的认证

调用django中admin的认证功能需要导入如下模块,authenticate用于认证,login用于登录,logout用于退出

from django.contrib.auth import authenticate,login,logout

具体代码如下:

def acc_login(request):if request.method == "POST":username = request.POST.get("username")password = request.POST.get("password")user = authenticate(username=username,password=password)#因为这里调用的django中admin的认证功能,所以这个时候如果认证成功得到的是<class 'django.contrib.auth.models.User'>对象#如果想要获取具体的用户名,可以user.userprofile.name得到#print("res:",type(user),user.userprofile.name)if user:#auth认证成功
            login(request,user)return redirect("/crm")return render(request,"login.html")

这里需要知道的是authenticate返回的其实是一个用户对象

<class 'django.contrib.auth.models.User'>,

如果想要获取具体的用户名字则需要通过user.userprofile.name,

关于动态菜单

根据属于不同的用户角色的用户登录是显示不同的菜单

(这里有一个问题需要注意,当一个菜单选项属于多个角色的时候,而这个用户又属于多个角色,这个时候就会造成该用户登录的时候菜单选项重复问题)

动态菜单这里还有一个事情需要小技巧,就是选中某菜单的时候给一个背景色,即动态添加active

这里可以根据url来设置,因为每个菜单的都是一个a标签而a标签的href属性和当前的页面的url是相同的

通过通过在js中获取当前的url也就是’{{request.path}}’

关于django中admin的自定制功能

在django的admin中可以自定义显示的字段内容,需要在admin.py配置文件中做如下配置:

class CustomerAdmin(admin.ModelAdmin):list_display = ("id","name","qq","consultant","consult_content","status","date")

在admin.py中创建类,并且让继承admin.ModelAdmin

list_display表示要显示的字段,将要显示的字段在后面列出,这样在前端页面就可以看到

当然也可以通过list_filter实现过滤的搜索的功能

通过search_fields实现关键字搜索

通过list_editable实现对某些字段编辑功能如:

自己写一个admin,这里命名为kingadmin

分析过程:

首先从外观分析

django登录admin的时候显示如上图,会显示所有的app名字,并且在每个app下会显示该app所有的表名

这里有几个知识点需要注意:

关于如何获取所有的app

所有注册的app都会在sttings的配置文件中的INSTALLED_APPS中,

而这里获得方法如下:

from django import conffor app in conf.settings.INSTALLED_APPS:try:print(__import__("%s.kingadmin" %app))except ImportError as e:print("app has no model kingadmin")

这里通过导入django的conf模块,然后conf.settings.INSTALLED_APPS获取所有的app信息,

关于注册表

分析django的admin的源码可以看出关于注册这里,是创建了一个AdminSite类,并且实例化

在初始化函数的时候顶一个registery字典

每次注册都会添加到这个字典中,所以我们可以模仿这个样子写

在这里用到几个知识点:

自定义标签simple_tag

创建过程:

创建templatetags包

在templatetags创建py文件

导入template模块:from django import template

register = template.Library()

@register.simple_tag

如果返回的内容中有html则需要

from django.utils.safestring import mark_safe

在要返回的字符串:mark_safe(内容)

最要在前段页面导入:{%load kingadmin_tags%}这里kingadmin_tags 是在templatetags包创建的py文件

待续。。。。。。。。

所有的努力都值得期许,每一份梦想都应该灌溉!

关于python开发CRM系统相关推荐

  1. python写crm_关于python开发CRM系统

    CRM简介 CRM全称:customer relationship management 无CRM的痛点 没有CMR的缺点及痛点: 每个销售会通过Excel来统计客户信息,造成信息不能同步和共享 客户 ...

  2. python开发mes系统_MES系统开发

    MES系统开发 MES系统制造车间往往有多条生产线.设备复杂,产品生产要经过多个工序.完全靠人工的方式进行管理和控制几乎是不可能的:MES系统对产品订单.质量.设备.资源等进行全面的动态管理:作为将E ...

  3. python开发bs系统_基于BS架构的招聘管理系统的开发

    基于 B/S 架构的招聘管理系统的开发 近年来 , 伴随着中国在全球经济的地位日益强大 , 中国国内企业处于迅速发 展阶段.企业的发展离不开人才的引进和更新 , 而这也相继带来了人力资源管理 的巨大发 ...

  4. python开发的系统有哪些_Python web开发=几个模板系统的性能对比

    Python web 开发:几个模板系统的性能对比 对比目标, jinja2 , cheetah , mako , webpy , bottle , tornado , django 的性能. 方法, ...

  5. python开发erp系统odoo_ODOO快速入门与实战:PYTHON开发ERP指南

    前言篇  基础篇章  Odoo简介  21.1  Odoo发展历程  21.2  Odoo与主流ERP系统的对比  31.3  总结  4第2章  安装与配置  52.1  在Ubuntu上安装Odo ...

  6. python开发his系统_医院HIS系统调用钉钉开放平台的简单实例

    龙源期刊网 http://www.qikan.com.cn 医院 HIS 系统调用钉钉开放平台的简单实 例 作者:朱夏迪 来源:<中国新通信> 2016 年第 19 期 [摘要] 目的:实 ...

  7. python开发erp系统odoo_开源erp软件odoo在线开发环境部署实录

    1.前言 pscloud(odoo)是优秀的开源erp,采用微应用方式向企业客户交付业务应用功能,包含海量的经过全球客户验证的业务应用APP,且odoo基于python的底层框架也非常优秀,特别适合于 ...

  8. python开发mes系统_MES系统开发手记(一)

    前言: 从ERP开发转到MES系统开发又是将近5年时间了,前后做了几个项目的MES系统,终于想为自己的这几年开发做个总结,写一个比较产品化的MES系统. (一):建模 1.基础资料,建立以下几个信息中 ...

  9. python开发bs系统_一文告诉你,如何使用Python构建一个“谷歌搜索”系统|内附代码...

    来源 | hackernoon 编译 | 武明利 责编 | Carol 在这篇文章中,我将向您展示如何使用Python构建自己的答案查找系统.基本上,这种自动化可以从图片中找到多项选择题的答案. 有一 ...

最新文章

  1. 使用npm install XXX 时出现“failed to fetch from regi...
  2. 一个古老而优雅的电子线路
  3. 项目管理实战之团队管理 (转)
  4. 如何制作印章_电子公章怎么制作
  5. Redis 6.0 新特性:多线程连环 13 问!
  6. Angular Material 阴影使用
  7. windowoPhone7.1 Socket编程-实现手机与电脑通信
  8. mysql插入性能测试
  9. JMeter循环控制器循环次数使用变量控制注意事项
  10. linux中安装yum简单方法
  11. CASS 快捷键设置方法
  12. C语言求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入。...
  13. access无法 dolby_dolby access怎么用?
  14. 用 python 来操作 docx(使用 docx 库操作 docx 格式文件)
  15. 高等数学笔记:留数法
  16. excel中时间差的计算
  17. 给你推荐个软件----印象笔记(everNote)
  18. Android/Java中okhttp用法介绍
  19. Poly-YOLO:更快,更精确的检测(主要解决Yolov3两大问题,附源代码)
  20. Angular慕课网

热门文章

  1. 机器学习笔记(6):多类逻辑回归-使用gluon
  2. 36.5. height / width
  3. 【Arduino基础教程】PM2.5粉尘检测传感器
  4. mysql 基于 ssl 的主从复制
  5. C#操作ini文件类
  6. Samba简单应用案例
  7. 梦幻群侠传5帮派修炼_梦幻封妖传5门派技能介绍 | 手游网游页游攻略大全
  8. 导入工程时出现错误:Invalid project description http://berdy.iteye.com/blog/1115279...
  9. 2018-2019-1 20165320 《信息安全系统设计基础》第八周学习总结
  10. Node连接MySQL并封装其增删查改