请稍等 ...
×

采纳答案成功!

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

获取分类列表中,单独获取某个类的详情可能获取不到

class GoodsCategoryListViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    """
    List:
        分类列表
    """
    queryset = GoodsCategory.objects.filter(category_type=1)
    serializer_class = GoodsCategorySerializer

因为queryset 指定了category_type=1, 当我们http://127.0.0.1:8000/category/7/ 访问一个三级分类的时候,会提示

HTTP 404 Not Found
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "detail": "未找到。"
}

正在回答 回答被采纳积分+3

1回答

bobby 2023-11-10 14:07:20

这里提示是type=1的category中没有id=7的数据

0 回复 有任何疑惑可以回复我~
  • 提问者 爱下围棋的时光 #1
    哦,是我没有描述清楚。
    1、按照到6-2节的代码实现,虽然加上了GoodsListViewSet 添加了mixins.RetrieveModelMixin的继承,但是无法实现获取给定任意一个id的分类的详细信息的
    2、因为我们的queryset 指定了分类的层级,导致无法获取二三级的单个分类的详细信息
    3、这个问题该有什么办法解决吗
    回复 有任何疑惑可以回复我~ 2023-11-10 14:51:07
  • 提问者 爱下围棋的时光 #2
    哦,是我没有描述清楚
    1、虽然GoodsListViewSet 继承了mixins.RetrieveModelMixin,但是因为添加了category_type=1的条件,导致只能获取分类层级为1的分类的信息
    2、如果要获取任意一个分类的详细信息的话,即请求“http://127.0.0.1:8000/category/x/”都可以获取到存在的分类的详情,这样要如何实现呢?
    回复 有任何疑惑可以回复我~ 2023-11-10 14:59:15
  • bobby 回复 提问者 爱下围棋的时光 #3
    这种情况 queryset = GoodsCategory.objects.filter(category_type=1)就要注释掉,然后重写 get_queryset方法去按照逻辑编码
    回复 有任何疑惑可以回复我~ 2023-11-13 15:35:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信