(from:https://www.cnblogs.com/derek1184405959/p/8877643.html 有修改)
十三、首页、商品数量、缓存和限速功能开发
首先把pycharm环境改成本地的,vue中local_host也改成本地
1、轮播图接口实现
(1)goods/serializer
classBannerSerializer(serializers.ModelSerializer):'''轮播图'''
classMeta:
model=Banner
fields= "__all__"
(2)goods/views.py
classBannerViewset(mixins.ListModelMixin, viewsets.GenericViewSet):"""首页轮播图"""queryset= Banner.objects.all().order_by("index")
serializer_class= BannerSerializer
(3)url
#配置首页轮播图的url
router.register(r'banners', BannerViewset, base_name="banners")
2、新品接口功能开发
在设计Goods model时候有一个字段is_new
is_new = models.BooleanField("是否新品",default=False)
实现这个接口只要在goods/filters/GoodsFilter里面添加一个过滤就可以了
classMeta:
model=Goods
fields= ['pricemin', 'pricemax','is_hot','is_new']
3、首页商品分类显示功能
首先是大类,然后里面有
商品商标(多个)
大类下的二级类
广告商品
所有商品
(1)goods/serializers.py
classBrandSerializer(serializers.ModelSerializer):'''大类下面的宣传商标'''
classMeta:
model=GoodsCategoryBrand
fields= "__all__"
classIndexCategorySerializer(serializers.ModelSerializer):#某个大类的商标,可以有多个商标,一对多的关系
brands = BrandSerializer(many=True)
# 这里容易犯的错是用goods = GoodsSerialize(),但是这是错的。# good虽然有一个外键category,但这个外键指向的是三级类,(因为商品一般都是放在第三类之下)。但是我们的GoodsCategory是一级类。 #直接反向通过外键categor