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

规格表管理

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

查询获取规格表列表数据

接口分析

请求方式: GET /meiduo_admin/goods/specs/

from .views import skus, specs
from rest_framework.routers import DefaultRouter


#  规格表路由*****************************
router = DefaultRouter()
router.register('goods/specs', specs.SpecsView, base_name='specs')
print(router.urls)
urlpatterns += router.urls

【这儿使用自动生成路由的方式,序列化器中会自动生成路由,然后再添加到路由列表中】

【会进行生成后面这么多的路由[<RegexURLPattern specs-list ^goods/specs/$>, <RegexURLPattern specs-list ^goods/specs\.(?P<format>[a-z0-9]+)/?$>, <RegexURLPattern specs-detail ^goods/specs/(?P<pk>[^/.]+)/$>, <RegexURLPattern specs-detail ^goods/specs/(?P<pk>[^/.]+)\.(?P<format>[a-z0-9]+)/?$>, <RegexURLPattern api-root ^$>, <RegexURLPattern api-root ^\.(?P<format>[a-z0-9]+)/?$>]】

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

返回数据: JSON

 {
        "counts": "SPU商品规格总数量",
        "lists": [
            {
                "id": "规格id",
                "name": "规格名称",
                "spu": "SPU商品名称",
                "spu_id": "SPU商品id"
            },
            ...
          ],
          "page": "页码",
          "pages": "总页数",
          "pagesize": "页容量"
      }
返回值类型是否必须说明
countint总量
lists数组规格表信息
pageint页码
pagesint总页数
pagesizeint页容量

后端实现

from rest_framework.viewsets import ModelViewSet
from goods.models import SPUSpecification
from meiduo_admin.serializers.specs import SPUSpecificationSerializer
from meiduo_admin.utils import UserPageNum


class SpecsView(ModelViewSet):
    """商品规格的增删改查"""
    #  指定序列化器
    serializer_class = SPUSpecificationSerializer
    #  指定查询集
    queryset = SPUSpecification.objects.all()
    #  指定分页器
    pagination_class = UserPageNum

序列化器的定义

from rest_framework import serializers
from goods.models import SPUSpecification


class SPUSpecificationSerializer(serializers.ModelSerializer):
    # 关联嵌套返回spu表的商品名
    spu = serializers.StringRelatedField(read_only=True)
    # 返回关联spu的id值
    spu_id = serializers.IntegerField()

    class Meta:
        model = SPUSpecification  # 商品规格表关联了spu表的外键spu
        fields = '__all__'

运行结果:

注意事项(外键关联问题):

如果把外键关联注释掉,会拿不到外键的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值