DRF学习之商品的类别显示(八)

1.商品的类类别显示,先看views代码

class CategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
    # 注释很有用,在drf文档中
    """
    list:
        商品分类列表
    """
    queryset = GoodsCategory.objects.filter(category_type=1)#获取一级分类数据
    serializer_class = CategorySerializer#商品类别的序列化调用

2.serializer的代码,因为有三个级别的分类,而每个分类又包含子分类,所以序列化需要嵌套实例化,可以得到一个树形结构的json数据返回。

class CategorySerializer3(serializers.ModelSerializer):
    class Meta:
        model = GoodsCategory
        fields = "__all__"


class CategorySerializer2(serializers.ModelSerializer):
    sub_cat = CategorySerializer3(many=True)
    class Meta:
        model = GoodsCategory
        fields = "__all__"


class CategorySerializer(serializers.ModelSerializer):
    sub_cat = CategorySerializer2(many=True)
    class Meta:
        model = GoodsCategory
        fields = "__all__"

3.显示商品详情

修改视图,增加mixins.RetrieveModelMixin这样一个mixins,继承这个类就可以实现商品详情页的显示了。

class CategoryViewset(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    """
    list:
        商品分类列表数据
    retrieve:
        获取商品分类详情
    """
    queryset = GoodsCategory.objects.filter(category_type=1)

    serializer_class = CategorySerializer

4.配置访问路由

#配置category的url
router.register(r'categorys', CategoryViewset,basename="categorys")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值