SKU表管理

在sku表中我们需要对SKU表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作

查询获取sku表列表数据

【商品的详细信息,要引入事务的管理,对于多张表的处理需要使用事务】

在获取sku数据时,我们在请求中包含了查询关键keyword,这时我么就需要对keyword进行判断,来返回不同的查询数据

接口分析

请求方式: GET /meiduo_admin/skus/?keyword=<名称|副标题>&page=<页码>&page_size=<页容量>

from .views import skus
from rest_framework.routers import DefaultRouter#  sku表查询路由****************************
router = DefaultRouter()
router.register('skus', skus.SKUGoodsView, base_name='sku')
urlpatterns += router.urls

【上面两个自动生成路由有包含关系,所以要注意上下放置的位置】

请求参数: 通过请求头传递jwt token数据。

返回数据: JSON

{"counts": "商品SPU总数量","lists": [{"id": "商品SKU ID","name": "商品SKU名称","spu": "商品SPU名称","spu_id": "商品SPU ID","caption": "商品副标题","category_id": "三级分类id","category": "三级分类名称","price": "价格","cost_price": "进价","market_price": "市场价格","stock": "库存","sales": "销量","is_launched": "上下架","specs": [{"spec_id": "规格id","option_id": "选项id"},...]},...],"page": "页码","pages": "总页数","pagesize": "页容量"}
返回值 类型 是否必须 说明
count int SKUs商总量
lists 数组 SKU信息
page int 页码
pages int 总页数
pagesize int 页容量

后端实现

from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.skus import SKUGoodsSerializer
from meiduo_admin.utils import UserPageNum
from goods.models import SKUclass SKUGoodsView(ModelViewSet):# 指定序列化器serializer_class = SKUGoodsSerializer# 指定分页器 进行分页返回pagination_class = UserPageNum# 重写get_queryset方法,判断是否传递keyword查询参数def get_queryset(self):# 提取keywordkeyword = self.request.query_params.get('keyword')if keyword == '' or keyword is None:return SKU.objects.all()else:return SKU.objects.filter(name=keyword)

序列化器的定义

from rest_framework import serializers
from goods.models import SKU, SKUSpecificationclass SKUSpecificationSerialzier(serializers.ModelSerializer):"""SKU规格表序列化器"""spec_id = serializers.IntegerField(read_only=True)option_id = serializers.IntegerField(read_only=True)class Meta:model = SKUSpecification  # SKUSpecification中sku外键关联了SKU表fields = ("spec_id", 'option_id')class SKUGoodsSerializer(serializers.ModelSerializer):"""获取sku表信息的序列化器"""# 指定所关联的选项信息 关联嵌套返回specs = SKUSpecificationSerialzier(read_only=True, many=True)# 指定分类信息category_id = serializers.IntegerField()# 关联嵌套返回category = serializers.StringRelatedField(read_only=True)# 指定所关联的spu表信息spu_id = serializers.IntegerField()# 关联嵌套返回spu = serializers.StringRelatedField(read_only=True)class Meta:model = SKU  # SKU表中category外键关联了GoodsCategory分类表。spu外键关联了SPU商品表fields = '__all__'

运行效果:

SKU表管理之查询获取sku表列表数据相关推荐

  1. SPU表管理之查询获取SPU表列表数据

    SPU表管理 在SPU表中我们需要对SKU表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取SPU表列表数据 在获取sku数据时,我们在请求中包含 ...

  2. 规格表管理之查询获取规格表列表数据

    规格表管理 在规格表中我们需要对规格表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取规格表列表数据 接口分析 请求方式: GET /meiduo ...

  3. 规格选项表管理之查询获取规格选项表列表数据

    规格选项表管理 在规格选项表中我们需要对规格选项表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取规格选项表列表数据 接口分析 请求方式: GET ...

  4. (解决)除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效Mybatis-plus 默认分页功能报错

    (解决)除非另外还指定了 TOP.OFFSET 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效Mybatis-plus 默认分页功能报错 我百度了 ...

  5. 订单管理之获取订单表表列表数据

    获取订单表表列表数据 [订单数据是不能删除的,只能修改订单信息的状态] 接口分析 请求方式: GET /meiduo_admin/orders/?keyword=<搜索内容>&pa ...

  6. 管理员信息管理之获取管理员用户列表数据

    管理员信息管理 在系统管理中我们需要完成管理员表的增删改查,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 获取管理员用户列表数据 接口分析 请求方式: GET /meiduo ...

  7. ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例

    layui.table动态获取表头和列表数据示例 2020年07月14日 | 萬仟网IT编程 | 我要评论 ```javascript//表格layui.use('table', function() ...

  8. QQ登录回调地址实现:【获取qq好友列表数据】附实例

    QQ登录回调地址实现:[获取qq好友列表数据] <?php require_once("../../API/qqConnectAPI.php"); $qc = new QC( ...

  9. mysql触发器查询别的表_Oracle触发器查询统计本表

    Oracle触发器查询统计本表,这次由于项目需要,实际动手演练了一把,达到了需要的效果,大致是插入数据后,统计表内和当前插入数 Oracle触发器查询统计本表 这次由于项目需要,实际动手演练了一把,达 ...

最新文章

  1. hadoop2.4.1集群搭建
  2. 制胜人工智能时代——企业人工智能应用现状分析(第三版)
  3. [转]在WPF中自定义控件 UserControl
  4. wp7 通过后台代码给ListBoxItem添加ContextMenu 属性
  5. TQ210——交叉编译器的安装
  6. 图象:sine(正弦)、cosine(余弦)与Tangent(正切)
  7. 混合牛奶(洛谷-P1208)
  8. 中世纪判断女巫的方法总结
  9. 插入排序算法 java_排序算法实现-插入排序(Java版本)
  10. 最优比例生成树(0/1分数规划)
  11. 二维数组行列互调显示出来。如:123456789变成147258369。
  12. 学生信息管理系统之查:查询成绩信息流程
  13. 2020-05-11
  14. 第九章 数据库其他对象
  15. 知识付费-windows+宝塔安装教程
  16. Linux兄弟连视频教程—B站评论区总结
  17. Java 多线程线程安全(面试概念解答二)
  18. 如何处理RuntimeError: _cdist_backward requires X1(X2) to be contiguous
  19. 算法如何学习?别想太多,两个字
  20. i++ 、 ++i和i+=1、i=i+1 的问题

热门文章

  1. 这些算法在印度农村医疗中发挥极大作用,未来还将发挥哪些作用?
  2. 机器学习中,梯度下降算法的问题引入
  3. 「创式纪」人工智能应用创新大赛启动,首次结合商业计划和机器学习
  4. 新技术“红”不过十年,半监督学习为什么是个例外?
  5. Tensorflow框架是如何支持分布式训练的?
  6. AI,被“横扫记录”反噬?
  7. 两亿多用户,六大业务场景,知乎AI用户模型服务性能如何优化?
  8. 清华系“AI帮”崛起,要驱动1500亿元产业规模
  9. 100万年薪只是起步价!跨境AI人才遭疯抢后最终去了哪儿?
  10. IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入!