day40 crm开发之私户跟进记录开发-->定制前端页面模板
私户转公户功能
web应用中私户视图增加转公户功能
def action_multi_remove(self, request, *args, **kwargs):
"""
批量移除到公户
:return:
"""
current_user_id = request.session['user_info']['id']
pk_list = request.POST.getlist('pk')
self.model_class.objects.filter(id__in=pk_list, consultant_id=current_user_id).update(consultant=None)
action_multi_remove.text = "移除到公户"
action_list = [action_multi_remove]
效果展示:
查看私户记录
web应用增加跟进记录视图功能
web/views/consult_record.py
# -*- encoding: utf-8 -*-
"""
@File : consult_record.py
@Time : 2022/3/12 14:17
@Author : simon
@Email : 294168604@qq.com
@Software: PyCharm
"""
from django.conf.urls import url
from stark.service.v1 import StarkHandler
class ConsultRecordHandler(StarkHandler):
list_display = ['note', 'consultant', 'date']
def get_urls(self):
patterns = [
url(r'^list/(?P<customer_id>\d+)/$', self.wrapper(self.changelist_view), name=self.get_list_url_name),
url(r'^add/$', self.wrapper(self.add_view), name=self.get_add_url_name),
url(r'^change/(?P<pk>\d+)/$', self.wrapper(self.change_view), name=self.get_change_url_name),
url(r'^delete/(?P<pk>\d+)/$', self.wrapper(self.delete_view), name=self.get_delete_url_name),
]
patterns.extend(self.extra_urls())
return patterns
def get_queryset(self, request, *args, **kwargs):
customer_id = kwargs.get('customer_id')
current_user_id = request.session['user_info']['id']
return self.model_class.objects.filter(customer_id=customer_id, customer__consultant_id=current_user_id)
私户视图代码增加查看记录按钮
私户视图最新代码
web/views/private_customer.py
# -*- encoding: utf-8 -*-
"""
@File : private_customer.py
@Time : 2022/3/6 17:06
@Author : simon
@Email : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler, get_m2m_text, get_choice_text, StarkModelForm
from web import models
from django.urls import reverse
from django.utils.safestring import mark_safe
class PrivateCustomerModelForm(StarkModelForm):
class Meta:
model = models.Customer
exclude = ['consultant', ]
class PrivateCustomerHandler(StarkHandler):
model_form_class = PrivateCustomerModelForm
def display_record(self, obj=None, is_header=None):
if is_header:
return '跟进记录'
record_url = reverse('stark:web_consultrecord_list', kwargs={'customer_id': obj.pk})
return mark_safe('<a target="_blank" href="%s">跟进记录</a>' % record_url)
list_display = [StarkHandler.display_checkbox, 'name', 'qq', get_m2m_text('咨询课程', 'course'),
get_choice_text('状态', 'status'),display_record]
def get_queryset(self, request, *args, **kwargs):
current_user_id = request.session['user_info']['id']
return self.model_class.objects.filter(consultant_id=current_user_id)
def save(self, request, form, is_update, *args, **kwargs):
if not is_update:
current_user_id = request.session['user_info']['id']
form.instance.consultant_id = current_user_id
form.save()
def action_multi_remove(self, request, *args, **kwargs):
"""
批量移除到公户
:return:
"""
current_user_id = request.session['user_info']['id']
pk_list = request.POST.getlist('pk')
self.model_class.objects.filter(id__in=pk_list, consultant_id=current_user_id).update(consultant=None)
action_multi_remove.text = "移除到公户"
action_list = [action_multi_remove]
效果展示:
操作记录页面定制处理
由于stark组件已经使用了通用模板,现在需要修改v1中使用模板代码。
需要在类中定义一个参数
修改代码为:
最后在跟进记录视图中增加自定义模板
效果展示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具