请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

4回答

bobby 2020-04-22 15:40:07

https://img1.sycdn.imooc.com/szimg/5e9ff4d209e7b87111180616.jpg 这个是否配置了呢?

0 回复 有任何疑惑可以回复我~
提问者 慕斯卡8313365 2020-04-21 21:50:07
class GoodsCategorySerializer(serializers.ModelSerializer):
    """
    序列化商品一级种类
    """
    sub_cat = GoodsCategorySerializer2(many=True)

    class Meta:
        model = GoodsCategory
        fields = '__all__'


class GoodsSerializer(serializers.ModelSerializer):
    """
    序列化商品
    """
    category = GoodsCategorySerializer()  # 覆写modelform, 用外键的model替换外键。注意,后缀是Serializer
    images = GoodsImageSerializer(many=True)  # many=True 一对多关系。将images配置到商品的serializers里

    class Meta:
        model = Goods
        fields = '__all__'  # field完全copy Goods


0 回复 有任何疑惑可以回复我~
提问者 慕斯卡8313365 2020-04-21 21:48:49
class GoodsListViewset(CacheResponseMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    """
    利用Viewsets进一步优化,与urls中的Router配合
    商品列表页
    """
    throttle_classes = [UserRateThrottle, AnonRateThrottle]  # 用户限速通过用户ID,匿名用户(未登录)限速通过IP地址
    queryset = Goods.objects.all()  # 属性
    serializer_class = GoodsSerializer
    pagination_class = GoodsPagination  # 分页

    def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        instance.click_num += 1
        instance += 1
        serializer = self.get_serializer(instance)
        return Response(serializer.data)

    # authentication_classes = (TokenAuthentication, )  # 设置局部认证,列表页不需要登陆后访问,所以需注释掉
    filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]  # 过滤,搜索,排序
    # filterset_fields = ['name', 'shop_price'] # drf中的过滤功能

    #利用django-filter中的过滤功能,filterset_class实现复杂功能过滤
    filterset_class = GoodsFilter

    #利用drf 的filters 实现搜索和排序
    search_fields = ['name', 'goods_brief', 'goods_desc']
    ordering_fields = ['sold_num', 'shop_price']


0 回复 有任何疑惑可以回复我~
bobby 2020-04-21 13:15:07

后台的viewset的源码截图我看看

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信