CRM简介

CRM全称:customer relationship management

无CRM的痛点

没有CMR的缺点及痛点:

每个销售会通过Excel来统计客户信息,造成信息不能同步和共享

客户信息没有记录和跟进信息

会造成抢单问题

无法统计成单率和报表

没有和客户的沟通记录

客户信息表,唯一的客户端ID

一对多的跟进记录

客户状态,报名和未报名

客户来源分析

学员报名信息

学员可以报多个课程,每个课程的每节课程都有成绩,以及成绩排名

班级信息

将痛点转换成需求

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

课程信息

缴费记录

用户使用场景分析

角色管理

权限管理

动态菜单

在线交作业

关于表结构

后续完整后补充

关于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的认证功能,所以这个时候如果认证成功得到的是对象

#如果想要获取具体的用户名,可以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返回的其实是一个用户对象

如果想要获取具体的用户名字则需要通过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 conf

for 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_关于python开发CRM系统相关推荐

  1. python卖水果_小姨开水果店的,所以今天用Python写了一个水果店小系统!

    原标题:小姨开水果店的,所以今天用Python写了一个水果店小系统! 前言 今天晚上才刚下班,小姨就提了我最爱吃的榴莲过来,说不吃就坏了. 我一眼就看破了她的用意,哈哈哈 我这个小姨也是一起长大的,她 ...

  2. 利用python写一个简单的双色球彩票系统

    利用python写一个简单的双色球彩票系统 1.设置每次买的号码一样 写一个双色球彩票系统,系统可以随机产生一组数据,一组彩票数据有六位数,这六位数的的取值范围是0和1. 一张彩票是两块钱,用户可以选 ...

  3. python写好的代码怎么给别人使用-10分钟学会用python写游戏!Python其实很简单!...

    原标题:10分钟学会用python写游戏!Python其实很简单! Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程 ...

  4. python写web难受-python写web

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 你难道想只凭 python 脚本,就做一个 web 应用出来? 还真别说,最近, ...

  5. python写传奇脚本,Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...

    (点击上方快速关注并设置为星标,一起学Python) 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐. 不要害怕学习的过程枯燥 ...

  6. 用python写期货程序-python如何运用在期货(我用python做期货)

    .程序化交易系统目前主要是通过计算机程序实现的,其实就是把交易者决策的过程用计算机语言描述出来,然后由计算机给出交易建议或直接发送交易指令到期货公司的. 想请教下一般python在实际项目中怎样运用? ...

  7. crm系统用什么语言写的_什么是CRM系统以及如何正确选择

    crm系统用什么语言写的 In modern business the need of automation in various processes have already become comm ...

  8. python写mapreduce_用python写MapReduce函数——以WordCount为例

    使用 python 写 MapReduce 的 " 诀窍 " 是利用 Hadoop 流的 API ,通过 STDIN( 标准输入 ) . STDOUT( 标准输出 ) 在 Map ...

  9. python写软件实例-python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

最新文章

  1. 2016-8-9更新日志
  2. 独家|一文解读合成数据在机器学习技术下的表现
  3. 洛谷 1541 乌龟棋
  4. 对《Python核心编程》中“第一个Python程序”的改进
  5. Java程序猿必读的书籍,良心推荐!
  6. 5.1 损坏联机日志的恢复方法
  7. android自定义view背景透明度,Android 背景透明度设置总结
  8. 学会这一招,轻松玩转 app 中混合应用自动化测试
  9. matlab 计算 Lorenz 系统最大李雅普诺夫指数
  10. 计算机系统动态库修复,电脑系统windows7出现无法定位动态链接库user32.dll错误提示解决措施...
  11. 阿米洛键盘取消win_阿米洛键盘驱动|阿米洛樱花键盘驱动下载v1.0官方版 - 欧普软件下载...
  12. linux gpfs,IBM GPFS并行文件系统解决方案
  13. [CF1504E]Travelling Salesman Problem
  14. python0基础 第三节
  15. Shell-01Shell初相识
  16. python+ opencv实现摄像头实时人脸识别并实现汉字标框
  17. win10连接文件服务器记住密码如何删除,win10如何删除局域网共享文件访问密码...
  18. 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)
  19. 【8019】俞军给淘宝产品经理的分享
  20. mysql主从同步部分表_Mysql入门MySQL 主从同步部分数据表

热门文章

  1. 微服务是什么?初识微服务
  2. 最新学习通JS逆向分析
  3. 学大数据要学哪些算法_学习大数据开发前需要掌握哪些技能?
  4. 单片机开发的两种类型
  5. linux创建名字拼音的yum文件,Linux创建yum仓库
  6. 智慧停车之 IOT选型-电信物联网
  7. 常见的非关系型数据库(非RDBMS)
  8. 宋健人口模型 matlab,船舶动力定位系统波浪扰动仿真_宋健
  9. java实现快递物流查询(阿里云快递物流)
  10. 从苹果Swift语言乱弹开发语言