在6.2的最后老师介绍CategoryViewSet只要继承了RetrieveModelMixin,不用动urls.py就可以单独用ID来显示每一项。
我照做了,发现只有category=1的Category可以显示,当取ID=111时,就显示不了,如下图
但是老师演示的ID=111是可以显示的,我觉得费解,按照代码,queryset要求category=1才可以显示,那么我自己的试验结果是正常的,ID=1就是第一类商品,其他几个第一类商品我试过也是可以显示,老师的任何category_type都能查询出来反而不合理?
用git拉下的完整代码启动后端,前端api里设置host为本地后端,页面无法显示,调试查看错误正是categorys/4无法显示,与这个错误原因相同。
我的解决办法是CategoryViewset里把filter替换成all()以显示所有category。
queryset = GoodsCategory.objects.all() #filter(category_type=1)
修改之后,前端页面可以正常显示。
但是老师的网站http://shop.projectsedu.com/categorys/2/这种加了ID的直接访问API也不能显示:
"detail": "未找到。"
请问是怎么回事呢?为什么前端设置host=http://shop.projectsedu.com又能找到?
请Bobby老师解答,谢谢!
Django REST framework课程视频,RESTFul API前后端分离开发
了解课程