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


浙公网安备 33010602011771号