Django项目:CRM(客户关系管理系统)--72--62PerfectCRM实现CRM讲师讲课记录
Posted 颜言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django项目:CRM(客户关系管理系统)--72--62PerfectCRM实现CRM讲师讲课记录相关的知识,希望对你有一定的参考价值。
![](https://image.cha138.com/20210605/7b209da6328a4c20abbf4836d972bddb.jpg)
1 #urls.py 2 3 """PerfectCRM URL Configuration 4 5 The `urlpatterns` list routes URLs to views. For more information please see: 6 https://docs.djangoproject.com/en/2.0/topics/http/urls/ 7 Examples: 8 Function views 9 1. Add an import: from my_app import views 10 2. Add a URL to urlpatterns: path(\'\', views.home, name=\'home\') 11 Class-based views 12 1. Add an import: from other_app.views import Home 13 2. Add a URL to urlpatterns: path(\'\', Home.as_view(), name=\'home\') 14 Including another URLconf 15 1. Import the include() function: from django.urls import include, path 16 2. Add a URL to urlpatterns: path(\'blog/\', include(\'blog.urls\')) 17 """ 18 from django.contrib import admin 19 from django.urls import path 20 21 # ————————02PerfectCRM创建ADMIN页面———————— 22 from django.conf.urls import url # URL 23 from django.conf.urls import include # 分发URL 24 # ————————02PerfectCRM创建ADMIN页面———————— 25 26 # ————————46PerfectCRM实现登陆后页面才能访问———————— 27 from PerfectCRM import main_views 28 # ————————46PerfectCRM实现登陆后页面才能访问———————— 29 30 urlpatterns = [ 31 path(\'admin/\', admin.site.urls), 32 33 # ————————02PerfectCRM创建ADMIN页面———————— 34 url(r\'^king_admin/\', include("king_admin.king_urls")), # 自定义admin 35 # ————————02PerfectCRM创建ADMIN页面———————— 36 37 # ————————03PerfectCRM创建基本数据———————— 38 url(r\'^DBadd/\', include("DBadd.DBadd_urls")), # 添加随机数据 39 # ————————03PerfectCRM创建基本数据———————— 40 # ————————38PerfectCRM实现全局账号登录注销———————— 41 url(r\'^gbacc/\', include("gbacc.gbacc_urls")), # 全局账号登录注销 42 # ————————38PerfectCRM实现全局账号登录注销———————— 43 44 # ————————42PerfectCRM实现AJAX全局账号注册———————— 45 url(r\'^gbacc/\', include("gbacc.gbacc_ajax_urls")), # 全局账号登录注销 46 # ————————42PerfectCRM实现AJAX全局账号注册———————— 47 48 # ————————46PerfectCRM实现登陆后页面才能访问———————— 49 url(r\'^$\', main_views.PortalView.as_view()), 50 # ————————46PerfectCRM实现登陆后页面才能访问———————— 51 52 # ————————47PerfectCRM实现CRM客户报名流程———————— 53 url(r\'^bpm/\', include("bpm.sales.sales_urls")), # 业务流程 #学生报名 54 # ————————47PerfectCRM实现CRM客户报名流程———————— 55 56 # ————————53PerfectCRM实现CRM客户报名流程缴费———————— 57 url(r\'^bpm/\', include("bpm.financial.financial_urls")), # 业务流程 #财务缴费 58 # ————————53PerfectCRM实现CRM客户报名流程缴费———————— 59 60 # ————————60PerfectCRM实现CRM学生上课记录———————— 61 url( r\'^bpm/\', include( "bpm.student.student_urls" ) ), # 业务流程 # 学生上课记录 62 # ————————60PerfectCRM实现CRM学生上课记录———————— 63 64 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 65 url( r\'^bpm/\', include( "bpm.teacher.teacher_urls" ) ), # 业务流程 # 讲师班级 66 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 67 ]
![](https://image.cha138.com/20210605/7b209da6328a4c20abbf4836d972bddb.jpg)
1 # teacher_urls.py 2 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 3 from django.conf.urls import url 4 from bpm.teacher import teacher_views 5 urlpatterns = [ 6 url(r\'^teacher_class/$\', teacher_views.teacher_class,name=\'teacher_class\'),#讲师班级 7 url(r\'^teacher_class_detail/(\\d+)/$\', teacher_views.teacher_class_detail, name=\'teacher_class_detail\'), # 讲师班级课节详情 8 9 ] 10 11 # ————————62PerfectCRM实现CRM讲师讲课记录————————
![](https://image.cha138.com/20210605/7b209da6328a4c20abbf4836d972bddb.jpg)
1 # teacher_views.py 2 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 3 from django.contrib.auth.decorators import login_required # 登陆后页面才能访问 4 from django.shortcuts import render 5 6 #讲师班级 7 @login_required # 登陆后页面才能访问 8 def teacher_class(request): 9 # user_id=request.user.id #当前登陆的ID 10 # classlist=models.UserProfile.objects.get(id=user_id).classlist_set.all()#讲师所教班级 11 classes_obj=request.user.classlist_set.all() #根据 登陆的ID 获取02班级表 12 return render(request,\'bpm_teacher/teacher_class.html\',locals()) 13 14 # 讲师班级课节详情 15 @login_required # 登陆后页面才能访问 16 def teacher_class_detail(request,class_id): 17 # user_id=request.user.id #当前登陆的ID 18 # classes_obj=models.UserProfile.objects.get(id=user_id).classlist_set.get(id=class_id)#所选的班级 19 classes_obj=request.user.classlist_set.get(id=class_id) #根据 登陆的ID 获取02班级表 20 courserecordlist=classes_obj.courserecord_set.all()#根据 02班级表的ID 获取09学习纪录 21 return render(request, \'bpm_teacher/teacher_classes_detail.html\', locals()) 22 23 # ————————62PerfectCRM实现CRM讲师讲课记录————————
![](https://image.cha138.com/20210605/7b209da6328a4c20abbf4836d972bddb.jpg)
1 # kingadmin.py 2 # ————————04PerfectCRM实现King_admin注册功能———————— 3 from crm import models 4 #print("kingadmin crm",models.Customer) 5 6 # ————————05PerfectCRM实现King_admin注册功能获取内存———————— 7 # from king_admin.base_admin import register,BaseAdmin 8 from king_admin.base_admin import site,BaseAdmin 9 # ————————05PerfectCRM实现King_admin注册功能获取内存———————— 10 11 # ————————24PerfectCRM实现King_admin自定义操作数据———————— 12 from django.shortcuts import render 13 # ————————24PerfectCRM实现King_admin自定义操作数据———————— 14 15 # ————————28PerfectCRM实现King_admin编辑限制———————— 16 from django.forms import ValidationError 17 from django.shortcuts import render,redirect 18 # ————————28PerfectCRM实现King_admin编辑限制———————— 19 20 21 22 23 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 24 # 02班级表 25 class ClassListAdmin(BaseAdmin): 26 list_display = [\'id\', \'branch\', \'course\', \'class_type\', \'semester\', \'start_date\', \'end_date\'] # 显示字段表头 27 list_filter = [\'branch\', \'course\', \'class_type\'] # 过滤器(可以包含ManyToManyField) (注意加 逗号 , ) 28 filter_horizontal = [\'teachers\'] #复选框 29 site.register(models.ClassList,ClassListAdmin) #02班级表 30 31 # ————————62PerfectCRM实现CRM讲师讲课记录———————— 32 33 34 35 36 #04客户信息表 37 class CustomerAdmin(BaseAdmin):#定制Djanago admin 38 # ————————54PerfectCRM实现CRM客户报名链接———————— 39 # list_display = (\'id\', \'qq\', \'source\', \'consultant\', \'content\', \'date\') # 显示字段表头 40 list_display = (\'id\', \'qq\', \'source\', \'consultant\', \'content\', \'date\',\'status\',\'enroll\') # 显示字段表头 41 # ————————54PerfectCRM实现CRM客户报名链接———————— 42 # ————————11PerfectCRM实现King_admin分页显示条数———————— 43 list_per_page = 2 #分页条数 # 默认分页条数10 44 # ————————11PerfectCRM实现King_admin分页显示条数———————— 45 # ————————16PerfectCRM实现King_admin日期过滤———————— 46 # ————————15PerfectCRM实现King_admin多条件过滤———————— 47 # 过滤器(可以包含ManyToManyField) (注意加 逗号 , ) 48 # list_filter = (\'source\',\'consultant\',\'consult_courses\',) 49 list_filter = (\'date\',\'source\',\'consultant\',\'consult_courses\',) 50 # ————————15PerfectCRM实现King_admin多条件过滤———————— 51 # ————————16PerfectCRM实现King_admin日期过滤———————— 52 # ————————18PerfectCRM实现King_admin搜索关键字———————— 53 #搜索(不能包含CharField)(注意加 逗号 , ) 54 search_fields = (\'name\',\'qq\',) 55 # ————————18PerfectCRM实现King_admin搜索关键字———————— 56 # ————————26PerfectCRM实现King_admin自定义排序———————— 57 ordering = \'-qq\' #自定义排序,默认\'-id\' 58 # ————————26PerfectCRM实现King_admin自定义排序———————— 59 # ————————27PerfectCRM实现King_admin编辑复选框———————— 60 filter_horizontal = (\'tags\',) #复选框 61 # ————————27PerfectCRM实现King_admin编辑复选框———————— 62 # ————————33PerfectCRM实现King_admin编辑整张表限制———————— 63 readonly_table=True#默认表单不锁定 64 # ————————33PerfectCRM实现King_admin编辑整张表限制———————— 65 66 # ————————55PerfectCRM实现CRM客户报名状态颜色变化———————— 67 colored_fields = { 68 \'status\':{\'已报名\':"rgba(145, 255, 0, 0.78)", 69 \'未报名\':"#ddd"},} 70 # ————————55PerfectCRM实现CRM客户报名状态颜色变化———————— 71 72 # ————————54PerfectCRM实现CRM客户报名链接———————— 73 def enroll(self): 74 \'\'\'报名\'\'\' 75 print("customize field enroll",self) 76 link_name = "报名" 77 if self.instance.status == 0: 78 link_name = "报名新课程" 79 return \'\'\'<a target="_blank" class="btn-link" href="/bpm/customer/%s/enrollment/">点击%s</a> \'\'\' % (self.instance.id,link_name) 80 # url(r\'^customer/(\\d+)/enrollment/$\', sales_views.enrollment, name="enrollment"), # 客户招生#报名流程一 下一步 81 # target属性用于表示所链接文件打开到的位置 #记住,“”内的文字只是表示一个对象的名子。 82 enroll.display_name = "报名链接" 83 # ————————54PerfectCRM实现CRM客户报名链接———————— 84 85 86 87 # ————————24PerfectCRM实现King_admin自定义操作数据———————— 88 # from django.shortcuts import render 89 actions = [\'test_actions\',]#定制功能 #测试返回到一个新页面 90 def test_actions(self,request,arg2):#对应的函数 #request类自己的请求 #arg2类的内容 91 return render(request,"king_admin/table_index.html") 92 test_actions.short_description = "测试显示中文" 93 # ————————24PerfectCRM实现King_admin自定义操作数据———————— 94 95 # ————————28PerfectCRM实现King_admin编辑限制———————— 96 # ————————31PerfectCRM实现King_admin编辑多对多限制———————— 97 # readonly_fields = (\'qq\', \'consultant\',) # 不可修改 98 readonly_fields = (\'qq\', \'consultant\',\'tags\',) # 不可修改 99 # ————————31PerfectCRM实现King_admin编辑多对多限制———————— 100 101 # ————————29PerfectCRM实现King_admin编辑自定义限制———————— 102 def default_form_validation(self,obj): 103 print(\'validation:制定的\',obj.cleaned_data) 104 consult_course=obj.cleaned_data.get(\'content\',\'\')#自制验证字段 105 if len(consult_course)<10: 106 return ValidationError(#添加错误信息 返回 107 ("该字段%(field)s 咨询内容记录不能少于10个字符"), 108 code=\'invalid\', 109 params={\'field\':\'content\',}, 110 ) 111 # ————————29PerfectCRM实现King_admin编辑自定义限制———————— 112 113 # ————————28PerfectCRM实现King_admin编辑限制———————— 114 115 # ————————30PerfectCRM实现King_admin编辑自定义字段验证———————— 116 def clean_name(self,obj,*args,**kwargs):#名称验证 单个 117 name=obj.cleaned_data[\'name\'] 118 if not name: 119 obj.add_error(\'name\',\'不能为空!\') 120 return ValidationError(#添加错误信息 返回 121 ("%(field)s:该字段 不能为空"), 122 code=\'invalid\', 123 params={\'field\':\'name\',}, 124 ) 125 elif len(name)<5: 126 obj.add_error(\'name\',\'不能小于5个字符!\') 127 #return ValidationError(\'\',) 128 return ValidationError(#添加错误信息 返回 129 ("%(field)s:该字段 不能小于5个字符!"), 130 code=\'invalid\', 131 params={\'field\':\'name\',}, 132 ) 133 # ————————30PerfectCRM实现King_admin编辑自定义字段验证———————— 134 135 # ————————34PerfectCRM实现CRM自定义用户———————— 136 #10账号表 137 class UserProfileAdmin(BaseAdmin):#定制Djanago admin 138 list_display = (\'id\', \'email\', \'name\') # 显示字段表头 139 140 # ————————36PerfectCRM实现King_admin密码修改———————— 141 readonly_fields = (\'password\',) # 不可修改,限制 142 filter_horizontal = (\'user_permissions\',\'groups\') #复选框 143 modelform_exclude_fields=[\'last_login\']#排除#不显示 #自增日期 #base_admin.py #forms.py 144 # ————————36PerfectCRM实现King_admin密码修改———————— 145 146 site.register(models.UserProfile, UserProfileAdmin) 147 # ————————34PerfectCRM实现CRM自定义用户———————— 148 149 # ————————05PerfectCRM实现King_admin注册功能获取内存———————— 150 # register(models.Customer,CustomerAdmin) 151 # register(models.CourseRecord) 152 site.register(models.Customer,CustomerAdmin) 153 # ————————58PerfectCRM实现king_admin批量生成上课记录———————— 154 # site.register(models.CourseRecord) 155 # ————————58PerfectCRM实现king_admin批量生成上课记录———————— 156 # ————————05PerfectCRM实现King_admin注册功能获取内存———————— 157 158 # ————————04PerfectCRM实现King_admin注册功能———————— 159 160 161 # ————————56PerfectCRM实现CRM客户报名缴费链接———————— 162 # 06学员报名信息表 163 class EnrollmentAdmin(BaseAdmin): # 定制Djanago admin 164 list_display = (\'id\', \'customer\', \'enrolled_class\', \'consultant\', \'Pay_cost\', \'date\', \'payment\') # 显示字段表头 16以上是关于Django项目:CRM(客户关系管理系统)--72--62PerfectCRM实现CRM讲师讲课记录的主要内容,如果未能解决你的问题,请参考以下文章
Django项目:CRM(客户关系管理系统)--66--56PerfectCRM实现CRM客户报名缴费链接
Django项目:CRM(客户关系管理系统)--65--55PerfectCRM实现CRM客户报名状态颜色变化
Django项目:CRM(客户关系管理系统)--45--36PerfectCRM实现CRM用户登陆注销02