商品类别获取接口

view新增

获取商品分类列表

class CategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
    """
    list:
        商品分类列表数据
    """
    # 获取全部分类
    # queryset = GoodsCategory.objects.all()
    # 获取一级分类
    queryset = GoodsCategory.objects.filter(category_type=1)
    #第2步:在serializers里添加GoodsCategorySerializer,并重写CategorySerializer2、CategorySerializer3
   #配置serializer_class serializer_class = CategorySerializer #第3步:在url中添加配置

  

商品类别序列化

在serializers里添加GoodsCategorySerializer,并重写CategorySerializer、CategorySerializer2、CategorySerializer3

#引入商品和商品分类的models
from goods.models import Goods, GoodsCategory

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):
    """
    一级类
    """
    #一级类下面有很多二类,所以需要many=True
    sub_cat = CategorySerializer2(many=True)
    class Meta:
        model = GoodsCategory
        fields = "__all__"


class GoodsCategorySerializer(serializers.ModelSerializer):
    """
    商品类别序列化
    """
    category = CategorySerializer() #实例化

    class Meta:
        model = Goods
        fields = "__all__"

  

在url中添加配置

# 使用router添加 category 的url
router.register(r'categorys', CategoryViewSet, basename="categorys")

效果

获取全部商品分类(包括一二三级分类)

http://127.0.0.1:8000/categorys/?format=json

 

222获取指定一级分类的二三级分类

http://127.0.0.1:8000/categorys/40/

 

posted @ 2021-12-14 12:35  Jessie橙子  阅读(97)  评论(0编辑  收藏  举报
Live2D