vue+Django项目-商品详情页展示

商品的view

# 加上RetrieveModelMixin即可
class GoodsListViewSet(mixins.ListModelMixin,mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    """
    商品列表页,分页,搜索,过滤,排序
    """
    queryset = Goods.objects.all()
    serializer_class = GoodsSerializer
    filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
    filterset_class = GoodsFilter
    search_fields = ['name', 'goods_brief', 'goods_desc']

  url里检查是否配置好了

# 使用router添加goods的url 第1步
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
#配置goods的url
router.register(r'goods', GoodsListViewSet, basename="goods")

urlpatterns = [

    # 使用router添加url 第2步
    url(r'^', include(router.urls)),

]

 商品轮播图

class GoodsImageSerializer(serializers.ModelSerializer):
    # 商品详情的轮播图
    class Meta:
        model = GoodsImage
        fields = ('image',)


class GoodsSerializer(serializers.ModelSerializer):
    category = CategorySerializer() #类别实例化
    images = GoodsImageSerializer(many=True) #商品详情的轮播图 实例化

    class Meta:
        model = Goods
        # fields = ['name', 'click_num', 'goods_front_image']
        #获取所有的数据,外键会被序列化成id。展示外键信息可以再用 serializer
        fields = "__all__"

  

 

posted @ 2021-12-17 18:07  Jessie橙子  阅读(244)  评论(0)    收藏  举报
Live2D