“商品类别数据接口-2”的版本间的差异
来自CloudWiki
第1行: | 第1行: | ||
− | ==视图层Views.py== | + | ==获取一级目录== |
+ | ===视图层Views.py=== | ||
app/goods/views.py: | app/goods/views.py: | ||
第17行: | 第18行: | ||
serializer_class = CategorySerializer</nowiki> | serializer_class = CategorySerializer</nowiki> | ||
− | ==路由urls.py== | + | ===路由urls.py=== |
+ | |||
<nowiki> | <nowiki> | ||
第31行: | 第33行: | ||
[[文件:bd20-6-18.png|600px]] | [[文件:bd20-6-18.png|600px]] | ||
+ | |||
+ | ==获取一级、二级、三级目录== | ||
+ | app/goods/serilizers.py 中增加: | ||
+ | |||
+ | CategorySerializer3 代表三级目录, | ||
+ | |||
+ | CategorySerializer2 代表二级目录, | ||
+ | |||
+ | 通过各自的sub_cat变量层层嵌套。 | ||
+ | |||
+ | <nowiki>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__" | ||
+ | </nowiki> |
2020年8月15日 (六) 06:37的版本
获取一级目录
视图层Views.py
app/goods/views.py:
from .models import Goods,GoodsCategory from .filters import GoodsFilter from .serializers import GoodsSerializer,CategorySerializer class CategoryViewset(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): """ list: 商品分类列表数据 retrieve: 获取商品分类详情 """ queryset = GoodsCategory.objects.filter(category_type=1) serializer_class = CategorySerializer
路由urls.py
from goods.views import GoodsListViewSet, CategoryViewset router.register(r'goods',GoodsListViewSet, base_name='goods') #配置category的url router.register(r'categorys', CategoryViewset, base_name="categorys")
效果
http://10.0.0.30:8000/categorys/
获取一级、二级、三级目录
app/goods/serilizers.py 中增加:
CategorySerializer3 代表三级目录,
CategorySerializer2 代表二级目录,
通过各自的sub_cat变量层层嵌套。
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__"