商品类别获取接口
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/