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

django rest framework 学习笔记-实战商城2

01收货地址模型类和视图定义_哔哩哔哩_bilibili   本博客借鉴至大佬的视频学习笔记


地址信息的管理:增删改查的实现

# 序列化器配置
class AddrSerializer(serializers.ModelSerializer):"""收货地址的模型序列化器"""class Meta:model = Addrfields = '__all__'# view 视图信息
class AddrView(GenericViewSet,mixins.ListModelMixin,mixins.CreateModelMixin,mixins.DestroyModelMixin,mixins.UpdateModelMixin):"""收货地址管理视图"""queryset =  Addr.objects.all()serializer_class = AddrSerializerpermission_classes = [IsAuthenticated,AddrPermissions]# filterset_fields = ('user',)def list(self, request, *args, **kwargs):queryset = self.filter_queryset(self.get_queryset())# 通过请求过来的用户进行过滤queryset = queryset.filter(user=request.user)page = self.paginate_queryset(queryset)if page is not None:serializer = self.get_serializer(page, many=True)return self.get_paginated_response(serializer.data)serializer = self.get_serializer(queryset, many=True)return Response(serializer.data)# url 配置
# 添加地址和获取地址列表的路由
path('address/', AddrView.as_view({'post':'create','get':'list'}), name='address'),
# 删除和修改地址
path('address/<int:pk>/', AddrView.as_view({'delete':'destroy','put':'update'}), name='address'),# 注册过滤器
'django_filters'# 配置过滤器
REST_FRAMEWORK = {# 过滤器信息配置'DEFAULT_FILTER_BACKENDS':['django_filters.rest_framework.DjangoFilterBackend',]
}

默认收货地址的设置

#  如上 AddrView视图中增加默认地址函数
def set_default_addr(self,request,*args,**kwargs):"""设置默认收货地址"""# 将获取的地址设置为默认obj =self.get_object()obj.is_default =Trueobj.save()# 将其他地址进行遍历为非默认queryset = self.get_queryset().filter(user=request.user)for item in queryset:if item !=obj:item.is_default =Falseitem.save()return Response({'message':'设置成功'},status=status.HTTP_200_OK)# url 文件配置
path('address/<int:pk>/default/', AddrView.as_view({'put': 'set_default_addr'}), name='address'),

云短信使用:网址云通信精选特惠

购买成功后进入控制台,搜索短信服务:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

点击当前的SDK信息,安装依赖

 2024/02/23 更新ing....

http://www.lryc.cn/news/303555.html

相关文章:

  • WEB 3D技术 three.js 3D贺卡(4) 添加鼠标滚轮移动屏幕 改变贺卡文字功能
  • 爬虫在网页抓取的过程中可能会遇到哪些问题?
  • Eclipse中Run As On Server和Run As Java Application
  • 【MySQL】库的操作——MySQL数据库 、库的操作、表的操作、字符集和校验规则、备份和恢复
  • pytorch 用F.normalization的逆归一化如何操作
  • LabVIEW多通道压力传感器实时动态检测
  • Jenkins解决Host key verification failed (2)
  • C#,数值计算,矩阵的乔莱斯基分解(Cholesky decomposition)算法与源代码
  • docker 备份 mysql
  • 使用C# Net6连接国产达梦数据库记录
  • docker (八)-dockerfile制作镜像
  • springcloud-网关(gateway)
  • 2.20 day2 QT
  • 【C++语法基础】4.分支和循环结构(✨新手推荐阅读)
  • 朋友圈程序全开源版源码,附带系统搭建教程
  • 思维方式系列文章目录 -《清单革命》实践
  • RAID 创建使用以及ubuntu安装和使用zfs文件系统及Ubuntu软件安装
  • yarn常用命令小记
  • 防御保护---内容保护
  • jquery将网页html文档导出为pdf图片
  • opengl 学习着色器
  • 【数据结构】18 二叉搜索树(查找,插入,删除)
  • 力扣日记2.20-【回溯算法篇】491. 非递减子序列
  • Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏解锁图标置顶显示功能实现
  • FPGA_简单工程_拨码开关
  • LaunchPad 市场的复苏,Penpad 成新兴生力军
  • 知识图谱实战应用30-基于py2neo的天文学中的恒星、行星与卫星之间的关系知识图谱研究与应用
  • 笔试题详解(C语言进阶)
  • ClickHouse快速上手
  • 蓝桥杯DP算法——背包问题(C++)