crm

1. CRM
客户管理系统

2. 给谁用
1. 销售用
2. 老师用
3. 需求:
1. 登录
2. 注册
3. 销售
1. 增加/修改客户信息
2. 展示客户列表
1. 展示所有公户的信息
2. 展示销售私户的信息
3. 增加客户跟进记录
4. 展示摸个客户的跟进记录
5. 添加缴费记录
6. 添加报名表
7. 公户转私户
8. 私户转公户
4. 老师
0. 创建班级
1. 展示老师所带班级的信息
2. 展示所有课程记录(某天上什么课)
3. 学生上课记录

 

先写登陆
user = auth.authenticate()
if user:
auth.login()

密码明文改为密文
if form_obj.is_valid():
password = form_obj.cleaned_data.get('password')
user = form_obj.save()
user.set_password(password)
user.save()

公户与私户:
根据销售判断公户私户,客户有销售就是私户,没有就是公户。基于登陆可以看自己的公户私户


放入私户操作:
select中的actions和option 以及和 input框中 checkbox一起发到后端进行操作

根据actions得到的值(即路由),进行匹配操作,利用反射技术。
使用cbv(路由中as_view()),利用cbv的方法(post,get),采用反射

根据request.user获取自己的用户名,然后.related_name对应的字段,对应的字段添加或者删除


模糊查询
写出搜索框,query = request.GET.get('query','')
q = Q()
q.connector = 'OR'
for i in fields_list:
q.children.append(Q(('%s__contains' % i,query)))


模糊查询后分页

query_params['page']=15
query_params.urlencode() = query='内容'&page=15

后期可能会用到的不要直接修改,最好深copy
如query_params =copy.deepcopy(request.GET)


在私户中修改提交后跳转到了公户:
解决方案:
记录上一次地址和搜索条件,
在前端写死的东西不方便修改,应该写到后端成字符串传入前端,

django中的选择框
# 限制选择只有当前销售的客户
self.fields['customer'].widget.choices = [(i.id,i)for i in self.instance.consultant.customers.all()]
# 限制跟进人只能选择当前销售
self.fields['consultant'].widget.choices = [(self.instance.consultant)]


查看所有人的跟进记录
url(r'^consult_record/',views.ConsultRecordList.as_view(),name='consult_record'),
查看个人的跟进记录
url(r'^consult_record/(?P<customer_id>\d+)',views.ConsultRecordList.as_view(),name='consult_record'),
在cbv的get中传参customer_id
if customer_id == 0查看所有人的跟进记录
else:
all_consult_records = models.ConsultRecord.objects.filter(consultant=request.user,customer_id=customer_id)
前端中
<li><a href="{% url 'consult_record' '0'%}">跟进记录</a></li>
<td><a href="{% url 'consult_record' record.customer_id%}">{{ record.customer }} </a></td>

posted @ 2018-10-22 22:45  贾迪123  阅读(118)  评论(0编辑  收藏  举报