day42 crm开发之跟进记录编辑和删除
功能实现
修改路由:
进入跟进记录列表页面报错,提示编辑功能入参有两个但是我们穿了一个
我们需要处理stark组件中编辑功能
不过stark组件是通用功能,不能编辑,我们需要在web应用中加
from django.utils.safestring import mark_safe
def display_edit_del(self, obj=None, is_header=None, *args, **kwargs):
if is_header:
return '操作'
customer_id = kwargs.get('customer_id')
tpl = '<a href="%s">编辑</a> <a href="%s">删除</a>' % (
self.reverse_change_url(pk=obj.pk, customer_id=customer_id),
self.reverse_delete_url(pk=obj.pk, customer_id=customer_id))
return mark_safe(tpl)
修改stark组件通用代码,有定制的时候取定制,无定制就取默认
修改为
chagelist_view处理表内容新增入参
change_view新增入参
delete_view新增入参
漏洞处理
以上实现方式有漏洞,即通过修改url可以编辑和删除不是自己数据
新增漏洞处理
修改通用组建中增加页面代码
编辑web应用中跟进记录保存逻辑
def save(self, request, form, is_update, *args, **kwargs):
if not is_update:
customer_id = kwargs.get('customer_id')
current_user_id = request.session['user_info']['id']
object_exists = models.Customer.objects.filter(id=customer_id,
consultant_id=current_user_id).exists()
if not object_exists:
return HttpResponse('非法操作')
if not is_update:
form.instance.customer_id = customer_id
form.instance.consultant_id = current_user_id
form.save()
效果展示
编辑漏洞处理
需要修改通用组件
修改页面函数
修改为:
跟进记录视图函数增加编辑页面处理逻辑
def get_change_object(self, request, pk, *args, **kwargs):
customer_id = kwargs.get('customer_id')
current_user_id = request.session['user_info']['id']
return models.ConsultRecord.objects.filter(pk=pk, customer_id=customer_id,
customer__consultant_id=current_user_id).first()
效果展示:
删除漏洞处理
需要修改通用组件
修改删除函数
web应用跟进记录新增删除逻辑
def delete_object(self, request, pk, *args, **kwargs):
customer_id = kwargs.get('customer_id')
current_user_id = request.session['user_info']['id']
record_queryset = models.ConsultRecord.objects.filter(pk=pk, customer_id=customer_id,
customer__consultant_id=current_user_id)
if not record_queryset.exists():
return HttpResponse('要删除的记录不存在,请重新选择!')
record_queryset.delete()
效果展示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具