关于python开发CRM系统

简介: 注意本项目是针对培训学校开发简化的CRM CRM简介 CRM全称:customer relationship management 无CRM的痛点 没有CMR的缺点及痛点: 每个销售会通过Excel来统计客户信息,造成信息不能同步和共享 客户信息没有记录和跟进信息 会造成抢单问题 ...

注意本项目是针对培训学校开发简化的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 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文件

 

 

待续。。。。。。。。

所有的努力都值得期许,每一份梦想都应该灌溉!
目录
相关文章
|
28天前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
26天前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
2月前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
2月前
|
存储 安全 数据管理
基于python的在线考试系统
本系统基于Python开发,旨在通过信息化手段提升各行业数据管理效率。系统具备良好的安全性、稳定性及可扩展性,支持数据高效处理与决策支持,适用于教育、医疗、旅游等多个领域,助力办公自动化与科学化管理,显著提升工作效率并降低错误率。
|
25天前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
26天前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。

推荐镜像

更多