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__"

浙公网安备 33010602011771号