SKU表管理之查询获取sku表列表数据
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表列表数据相关推荐
- SPU表管理之查询获取SPU表列表数据
SPU表管理 在SPU表中我们需要对SKU表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取SPU表列表数据 在获取sku数据时,我们在请求中包含 ...
- 规格表管理之查询获取规格表列表数据
规格表管理 在规格表中我们需要对规格表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取规格表列表数据 接口分析 请求方式: GET /meiduo ...
- 规格选项表管理之查询获取规格选项表列表数据
规格选项表管理 在规格选项表中我们需要对规格选项表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 查询获取规格选项表列表数据 接口分析 请求方式: GET ...
- (解决)除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效Mybatis-plus 默认分页功能报错
(解决)除非另外还指定了 TOP.OFFSET 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效Mybatis-plus 默认分页功能报错 我百度了 ...
- 订单管理之获取订单表表列表数据
获取订单表表列表数据 [订单数据是不能删除的,只能修改订单信息的状态] 接口分析 请求方式: GET /meiduo_admin/orders/?keyword=<搜索内容>&pa ...
- 管理员信息管理之获取管理员用户列表数据
管理员信息管理 在系统管理中我们需要完成管理员表的增删改查,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 获取管理员用户列表数据 接口分析 请求方式: GET /meiduo ...
- ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例
layui.table动态获取表头和列表数据示例 2020年07月14日 | 萬仟网IT编程 | 我要评论 ```javascript//表格layui.use('table', function() ...
- QQ登录回调地址实现:【获取qq好友列表数据】附实例
QQ登录回调地址实现:[获取qq好友列表数据] <?php require_once("../../API/qqConnectAPI.php"); $qc = new QC( ...
- mysql触发器查询别的表_Oracle触发器查询统计本表
Oracle触发器查询统计本表,这次由于项目需要,实际动手演练了一把,达到了需要的效果,大致是插入数据后,统计表内和当前插入数 Oracle触发器查询统计本表 这次由于项目需要,实际动手演练了一把,达 ...
最新文章
- hadoop2.4.1集群搭建
- 制胜人工智能时代——企业人工智能应用现状分析(第三版)
- [转]在WPF中自定义控件 UserControl
- wp7 通过后台代码给ListBoxItem添加ContextMenu 属性
- TQ210——交叉编译器的安装
- 图象:sine(正弦)、cosine(余弦)与Tangent(正切)
- 混合牛奶(洛谷-P1208)
- 中世纪判断女巫的方法总结
- 插入排序算法 java_排序算法实现-插入排序(Java版本)
- 最优比例生成树(0/1分数规划)
- 二维数组行列互调显示出来。如:123456789变成147258369。
- 学生信息管理系统之查:查询成绩信息流程
- 2020-05-11
- 第九章 数据库其他对象
- 知识付费-windows+宝塔安装教程
- Linux兄弟连视频教程—B站评论区总结
- Java 多线程线程安全(面试概念解答二)
- 如何处理RuntimeError: _cdist_backward requires X1(X2) to be contiguous
- 算法如何学习?别想太多,两个字
- i++ 、 ++i和i+=1、i=i+1 的问题
热门文章
- 这些算法在印度农村医疗中发挥极大作用,未来还将发挥哪些作用?
- 机器学习中,梯度下降算法的问题引入
- 「创式纪」人工智能应用创新大赛启动,首次结合商业计划和机器学习
- 新技术“红”不过十年,半监督学习为什么是个例外?
- Tensorflow框架是如何支持分布式训练的?
- AI,被“横扫记录”反噬?
- 两亿多用户,六大业务场景,知乎AI用户模型服务性能如何优化?
- 清华系“AI帮”崛起,要驱动1500亿元产业规模
- 100万年薪只是起步价!跨境AI人才遭疯抢后最终去了哪儿?
- IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入!