您当前的位置: 首页 > 

IT之一小佬

暂无认证

  • 1浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

IT之一小佬 发布时间:2021-07-29 23:00:18 ,浏览量:1

SPU表管理

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

查询获取SPU表列表数据

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

接口分析

请求方式: GET /meiduo_admin/goods/?keyword=&page=&page_size=

#  查询获取SPU表列表数据
router = DefaultRouter()
router.register('goods', spus.SPUGoodsView, base_name='goods')
# print(router.urls)
urlpatterns += router.urls

【用自动生成路由的方式】

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

返回数据: JSON

{
        "counts": "商品SPU总数量",
        "lists": [
            {
                "id": "商品SPU ID",
                "name": "SPU名称",
                "brand": "品牌名称",
                "brand_id": "品牌id",
                "category1_id": "一级分类id",
                "category2_id": "二级分类id",
                "category3_id": "三级分类id",
                "sales": "SPU商品销量",
                "comments": "SPU商品评论量",
                "desc_detail": "商品详情",
                "desc_pack": "商品包装",
                "desc_service": "售后服务"
            },
            ...
       ],
       "page": "页码",
       "pages": "总页数",
       "pagesize": "页容量"
  }
返回值类型是否必须说明countint是SPU商品总量lists数组是SPU信息pageint是页码pagesint是总页数pagesizeint是页容量 后端实现

from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.spus import SPUGoodsSerialzier
from goods.models import SPU
from meiduo_admin.utils import UserPageNum


class SPUGoodsView(ModelViewSet):
    """
        SPU表的增删改查
    """
    # 指定序列化器
    serializer_class = SPUGoodsSerialzier
    # 指定查询及
    queryset = SPU.objects.all()
    # 指定分页
    pagination_class = UserPageNum

序列化器的定义

from rest_framework import serializers
from goods.models import SPU


class SPUGoodsSerialzier(serializers.ModelSerializer):
    """
        SPU表序列化器
    """
    # 一级分类id
    category1_id = serializers.IntegerField()
    # 二级分类id
    category2_id = serializers.IntegerField()
    # 三级级分类id
    category3_id = serializers.IntegerField()
    # 关联的品牌id
    brand_id = serializers.IntegerField()
    # 关联的品牌,名称
    brand = serializers.StringRelatedField(read_only=True)

    class Meta:
        model = SPU
        exclude = ('category1', 'category2', 'category3')

运行效果:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.1903s