python crm_Python CRM项目一
1 from django.db importmodels2 from django.contrib.auth.models importUser3 #Create your models here.
4 classCustomer(models.Model):5 '''客户信息表'''
6 name = models.CharField(max_length=32,null=True,blank=True)7 qq = models.CharField(max_length=64,unique=True)8 qq_name = models.CharField(max_length=64,null=True,blank=True)9 phone = models.CharField(max_length=64,null=True,blank=True)10 source_choices = ((0,'转介绍'),(1,'QQ群'),(2,'官网'),(3,'百度推广'),(4,'51cto'),(5,'知乎推荐'),(6,'市场推广'))11 source = models.SmallIntegerField(choices=source_choices)12 referral_from = models.CharField(verbose_name='转介绍人QQ',max_length=64,null=True,blank=True)13 consult_course = models.ForeignKey('Course',verbose_name='咨询课程')14 content = models.TextField(verbose_name='咨询详情')15 consultant = models.ForeignKey('UserProfile',verbose_name='销售')16 tags = models.ManyToManyField('Tag',blank=True,null=True);17 memo = models.TextField(blank=True,null=True)18 status_choice = (('signed','已报名'),('unregistered','未报名'))19 status = models.CharField(max_length=64,choices=status_choice,default='unregistered',verbose_name='客户状态')20 date = models.DateTimeField(auto_now_add=True)21
22 classMeta:23 verbose_name_plural = '客户'
24
25 def __str__(self):26 returnself.name27
28 classCustomerFollowUp(models.Model):29 '''客户跟进表'''
30 customer = models.ForeignKey('Customer')31 content = models.TextField(verbose_name='跟进内容')32 consultant = models.ForeignKey('UserProfile')33 intention_choices = ((0,'2周内报名'),(1,'1个月报名'),(2,'近期无报名计划'),(3,'已在其他机构报名'),(4,'已报名'),(5,'已拉黑'))34 intention = models.SmallIntegerField(choices=intention_choices)35 date = models.DateTimeField(auto_now_add=True)36
37 def __str__(self):38 return '%s %s' %(self.customer.qq, self.intention)39
40 classMeta:41 verbose_name_plural = '客户跟进记录'
42
43 classCourse(models.Model):44 '''课程表'''
45 name = models.CharField(max_length=128,unique=True)46 price =models.PositiveSmallIntegerField()47 period = models.PositiveSmallIntegerField(verbose_name='周期(月)')48 outline =models.TextField()49
50 def __str__(self):51 returnself.name52
53 classMeta:54 verbose_name_plural = '课程'
55
56 classBranch(models.Model):57 '''校区表'''
58 name = models.CharField(max_length=128,unique=True)59 addr = models.CharField(max_length=512)60
61 def __str__(self):62 returnself.name63
64 classMeta:65 verbose_name_plural = '校区'
66
67 classClassList(models.Model):68 '''班级表'''
69 branch = models.ForeignKey('Branch',verbose_name='分校')70 course = models.ForeignKey('Course')71 semester = models.PositiveSmallIntegerField(verbose_name='学期')72 teachers = models.ManyToManyField('UserProfile')73 class_type_choice = ((0,'面授班(脱产)'),(1,'面授班(周末)'),(2,'网络班'))74 class_type = models.SmallIntegerField(choices=class_type_choice)75 start_date = models.DateField(verbose_name='开班日期')76 end_date = models.DateField(verbose_name='结业日期',blank=True,null=True)77
78 def __str__(self):79 return '%s %s %s' %(self.branch, self.course, self.semester)80
81 classMeta:82 unique_together = ('branch', 'course', 'semester')83 verbose_name_plural = '班级'
84
85
86
87 classCourseRecord(models.Model):88 '''上课记录表'''
89 from_class = models.ForeignKey('ClassList',verbose_name='班级')90 day_num = models.PositiveSmallIntegerField(verbose_name='第几节(天)')91 teacher = models.ForeignKey('UserProfile')92 has_homework = models.BooleanField(default=True)93 homework_title = models.CharField(max_length=256,blank=True,null=True)94 homework_content = models.TextField(blank=True,null=True)95 outline = models.TextField(verbose_name='本节课大纲')96 date = models.DateTimeField(auto_now_add=True)97
98 def __str__(self):99 return '%s %s' %(self.from_class, self.day_num)100
101 classMeta:102 unique_together = ('from_class', 'day_num')103 verbose_name_plural = '上课记录'
104
105
106 classStudyRecord(models.Model):107 '''学习记录表'''
108 student = models.ForeignKey('Enrollment')109 course_record = models.ForeignKey('CourseRecord')110 attendance_choice = ((0,'已签到'),(1,'迟到'),(2,'缺勤'),(3,'早退'))111 attendance = models.SmallIntegerField(choices=attendance_choice,default=0)112 score_choices = ((100,'A+'),(90,'A'),(85,'B+'),(80,'B'),(75,'B-'),(70,'C+'),(60,'C'),(40,'C-'),(-50,'D'),(-100,'COPY'),(0,'N/A'))113 score = models.SmallIntegerField(choices=score_choices)114 memo = models.TextField(blank=True,null=True)115 date = models.DateTimeField(auto_now_add=True)116
117 def __str__(self):118 return '%s %s %s' %(self.student, self.course_record, self.score)119
120 classMeta:121 unique_together = ('student', 'course_record')122 verbose_name_plural = '学习记录'
123
124
125
126
127 classEnrollment(models.Model):128 '''学生报名表(学生报名信息,合同,入学日期,所报班级)'''
129 customer = models.ForeignKey('Customer')130 enrolled_class = models.ForeignKey('ClassList',verbose_name='所报班级')131 consultant = models.ForeignKey('UserProfile',verbose_name='课程顾问')132 contact_agreed = models.BooleanField(default=False,verbose_name='学生已同意合同条款')133 contact_approved = models.BooleanField(default=False,verbose_name='合同已审核')134 date = models.DateTimeField(auto_now_add=True)135
136 def __str__(self):137 return '%s %s' %(self.customer, self.enrolled_class)138
139 classMeta:140 unique_together = ('customer', 'enrolled_class')141 verbose_name_plural = '报名'
142
143 classPayment(models.Model):144 '''缴费记录'''
145 customer = models.ForeignKey('Customer')146 course = models.ForeignKey('Course')147 amount = models.PositiveIntegerField(verbose_name='数额',default=500)148 consultant = models.ForeignKey('UserProfile')149 date = models.DateTimeField(auto_now_add=True)150
151 def __str__(self):152 return '%s %s' %(self.customer, self.amount)153
154 classMeta:155 verbose_name_plural = '缴费记录'
156
157 classUserProfile(models.Model):158 '''账号表'''
159 user =models.OneToOneField(User)160 name = models.CharField(max_length=32)161 roles = models.ManyToManyField('Role',blank=True,null=True)162
163 def __str__(self):164 returnself.name165
166
167 classRole(models.Model):168 '''角色表'''
169 name = models.CharField(max_length=64,unique=True)170
171 def __str__(self):172 returnself.name173
174 classMeta:175 verbose_name_plural = '角色'
176
177 classTag(models.Model):178 '''标签备注'''
179 name = models.CharField(max_length=64,unique=True)180
181 def __str__(self):182 returnself.name183 classMeta:184 verbose_name_plural = '标签'
python crm_Python CRM项目一相关推荐
- python写crm_Python CRM项目八
自定义用户认证 目的:实现Django自定义的认证系统,在生产环境都是根据此代码进行定制的 步骤: 1.在settings文件中配置要使用的类 #命名规则 app名称.类名 AUTH_USER_MOD ...
- 视频教程-SpringBoot后台CRM项目(第一季)-Java
SpringBoot后台CRM项目(第一季) 2011年毕业后在澳门 遊澳集团(UO Group)旗下某IT科技公司从事 android,php,j2ee开发工作,负责 国际短信发送系统.银联支付业务 ...
- Linux下启动crm项目
将crm项目代码上传至Linux服务器中 注:zip用unzip命令解压缩 unzip crm.zip 新建虚拟环境,用于运行crm [root@s25linux tf_crm]# virtualen ...
- 10 个开源 Python OpenCV 小项目,YouTube热门
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | 新机器视觉 1. Drowsiness Detect ...
- 重磅升级,52个Python+OpenCV实战项目教你掌握图像处理
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 近期小白学视觉公众号推出了多篇Python+OpenCV实战项目的 ...
- 70个Python练手项目列表 预祝大家 快乐
小孩眺望远方,成人怀念故乡. 为此给大家分享一下珍藏的Python实战项目,祝大家节日快乐哦!!! Python 前言:不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说 ...
- python入门新手项目-Python入门实战项目有哪些适合新手?
Python入门实战项目有哪些适合新手?目前市面上有很多适合新手的Python入门练手项目,Python入门需要理论与实践相结合,前面夯实基础知识,后面通过实战项目帮助你更好的运用这些Python知识 ...
- 如何自学python到做项目-总算明白如何通过项目学习python
在学习完Python的基础知识之后,有很多朋友为自己接下来要干什么感到迷茫.不知道应该通过什么样的项目来锻炼自己编程水平和思维能力.接下来我就给大家说几个适合Python的新手项目和练手项目,Pyth ...
- python爬虫项目-32个Python爬虫实战项目,满足你的项目慌
原标题:32个Python爬虫实战项目,满足你的项目慌 爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬 ...
最新文章
- Gmapping从开始到放弃—写一个TF 监听
- 已经正常安装ssh: connect to host 192.168.4.254 port 22: Connection refused
- Scala主构造方法和辅助构造方法
- How Many Answers Are Wrong HDU - 3038(带权并查集)
- 【渝粤教育】电大中专新媒体营销实务 (16)作业 题库
- eclipse 代码上传github 笔记
- 浅谈SQL中存储过程和自定义函数的区
- SpringMV工作流程分析
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_09-修改页面-服务端-接口开发...
- 二次解析视屏 php,最新PHP二次视频解析源码 带后台版
- 从pdf简历中提取信息——BiLSTM-CRF
- 在Linux中进行GO语言安装
- notepad 打开php乱码,notepad++打开dll是乱码
- 内存超频trfc_就是这么的简单,微星主板内存超频分享
- 蓝牙耳机什么牌子好?性价比最高的蓝牙耳机排行榜
- [Obsidian]懒人必备插件附使用教程
- 稳压二极管与TVS二极管的区别
- Git入门、gitHub、gitee、gitLab远程库的学习和集成IDEA
- tex 表格内容换行_{Latex}{Tabular}文本超出表格自动换行
- Unity tolua问题记录
热门文章
- SpringBoot——实现WebService接口服务端以及客户端开发
- SpringBoot通过yml和xml文件配置日志输出
- SpringBoot使用Slf4j+Log4j2完成项目的日志记录
- Spring IOC原理总结
- 用dl元素编辑html个人信息,html dl dt dd标签元素语法结构与使用
- int和Integer的比较
- html怎么无损插入背景音乐,HTML插入背景音乐方法【全】
- php 系统环境变量引用,PHP 系统变量 环境变量
- 华为防火墙查看日志命令_华为防火墙异常日志,请高手进来查看,跪谢
- 图书管理系统_目前图书管理系统存在的问题