当前位置: 首页 > news >正文

第12次12: 修改和删除收货地址

第1步:在users应用下views.py中新增实现修改收货地址的视图类

class UpdateDestroyAddressView(LoginRequiredJSONMixin, View):def put(self, request, address_id):"""修改收货地址"""json_dict = json.loads(request.body.decode())receiver = json_dict.get('receiver')province_id = json_dict.get('province_id')city_id = json_dict.get('city_id')district_id = json_dict.get('district_id')place = json_dict.get('place')mobile = json_dict.get('mobile')tel = json_dict.get('tel')email = json_dict.get('email')# 校验参数if not all([receiver, province_id, city_id, district_id, place, mobile]):return HttpResponseForbidden('缺少必传参数')if not re.match(r'^1[3-9]\d{9}$', mobile):return HttpResponseForbidden('参数mobile有误')if tel:if not re.match(r'^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$', tel):return HttpResponseForbidden('参数tel有误')if email:if not re.match(r'^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email):return HttpResponseForbidden('参数email有误')# 判断地址是否存在,并更新地址信息try:Address.objects.filter(id=address_id).update(user=request.user, title=receiver, receiver=receiver,province_id=province_id, city_id=city_id, place=place,district_id=district_id, mobile=mobile, tel=tel,email=email)except Exception as e:logger.error(e)return JsonResponse({'code': RETCODE.DBERR, 'errmsg': '更新地址失败'})# 构造响应数据address = Address.objects.get(id=address_id)address_dict = {"id": address.id, "title": address.title,"receiver": address.receiver, "province": address.province.name,"city": address.city.name, "district": address.district.name,"place": address.place, "mobile": address.mobile,"tel": address.tel, "email": address.email}# 响应更新地址结果return JsonResponse({'code': RETCODE.OK, 'errmsg': '更新地址成功', 'address': address_dict})def delete(self, request, address_id):# 获取默认收货地址的iddefault_address_id = request.user.default_address# 判断用户删除的是否是默认收货地址,如果是,那么将默认收货地址字段设置为None,# 如果不是,那么直接删除try:address = Address.objects.get(id=address_id)if default_address_id == address.id:request.user.default_address_id = Nonerequest.user.save()address.is_deleted = Trueaddress.save()except Exception as e:logger.error(e)return JsonResponse({'code': RETCODE.DBERR,'errmsg': '删除地址失败'})# 返回响应结果return JsonResponse({'code': RETCODE.OK, 'errmsg': '删除地址成功'})

第2步:在users应用下配置路由

path('addresses/<int:address_id>/', views.UpdateDestroyAddressView.as_view()),


文章转载自:

http://mboXJMRk.spdyL.cn
http://pfYe4NvP.spdyL.cn
http://DfIWDEIy.spdyL.cn
http://6SrJ5tCZ.spdyL.cn
http://eVN1ikOl.spdyL.cn
http://IaaGgVaT.spdyL.cn
http://23wPE1NW.spdyL.cn
http://vbKkdFzI.spdyL.cn
http://wK8DrXtQ.spdyL.cn
http://Qe2VpMNx.spdyL.cn
http://SPipNYeX.spdyL.cn
http://aGiZrb1k.spdyL.cn
http://kjHSgxE2.spdyL.cn
http://DduWzEv0.spdyL.cn
http://FizcSRTn.spdyL.cn
http://aV9kxaAg.spdyL.cn
http://LcqQ8SVw.spdyL.cn
http://LjlDatWo.spdyL.cn
http://MyAVYfKH.spdyL.cn
http://OkWeaaJb.spdyL.cn
http://hT60iq5q.spdyL.cn
http://caywYFkw.spdyL.cn
http://yAJx4Aph.spdyL.cn
http://eCMMemAc.spdyL.cn
http://8XYSftvc.spdyL.cn
http://ax2tTSMM.spdyL.cn
http://vM79hz6u.spdyL.cn
http://ucjmrLjq.spdyL.cn
http://JD6xpaLk.spdyL.cn
http://P99WFeXk.spdyL.cn
http://www.dtcms.com/a/226935.html

相关文章:

  • 前端面试宝典---前端水印
  • DeepSeek模型安全部署与对抗防御全攻略
  • C语言:内存函数
  • C++ 内存泄漏检测器设计
  • 第17讲、odoo18可视化操作代码生成模块
  • 鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(二)
  • Linux之进程间通信
  • 用“照片放大/缩小”来通俗理解多尺度
  • Altium Disigner(16.1)学习-元器件封装
  • 【看到哪里写到哪里】C的指针-3(函数指针)
  • 【Java Web】6.登入认证
  • Missashe考研日记—Day51-Day57
  • 网络安全的学习路线是怎么样的?
  • 已有的前端项目打包到tauri运行(windows)
  • 大模型前处理-CPU
  • (九)学生写作画像可视化
  • 【Unity】相机 Cameras
  • rabbitmq Direct交换机简介
  • React Hooks 与异步数据管理
  • Python-matplotlib中的Pyplot API和面向对象 API
  • SolidWorks建模(U盘)- 多实体建模拆图案例
  • STM32:CAN总线精髓:特性、电路、帧格式与波形分析详解
  • CppCon 2014 学习:Decomposing a Problem for Parallel Execution
  • Docker 安装 Redis 容器
  • 如何使用flask做任务调度
  • 机器学习算法:逻辑回归
  • 分布式锁优化:使用Lua脚本保证释放锁的原子性问题
  • 单元测试-断言常见注解
  • MCP还是A2A?AI未来技术选型深度对比分析报告
  • 解决:install via Git URL失败的问题