如何用DRF配置类似于“GET /zoos/ID/animals:列出某个指定动物园的所有动物”的URL?
来源:5-8 viewsets和router完成商品列表页
mmm拇
2017-09-20
看了老师课件提到的一个关于restful api的文章里边提到restful api介绍,里边有说道用“GET /zoos/ID/animals:列出某个指定动物园的所有动物”
那么DRF中的router是否存在类似的功能方便我们快速的去生成类似这样的URL呢?如果没有的话,有什么建议吗?
写回答
1回答
-
mmm拇
提问者
2017-09-20
看了一下文档可以用@detail_route的方式进行嵌套,但是只能进行到"/zoos/ID/animals"而不能进行动物详情的查询(就是"/zoos/ID/animals/ID")
class SchoolListViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): """ 测试用啦啦啦啦啦 """ queryset = School.objects.all() serializer_class = SchoolSerializer @detail_route(methods=['get'], url_path='coaches') def coach_list(self, request, pk=None): self.queryset = Coach.objects.filter(is_active=True, school_id=pk) self.pagination_class = BasePagination self.serializer_class = CoachesSerializer self.filter_backends = ( DjangoFilterBackend, filters.SearchFilter, # filters.OrderingFilter, # 排序逻辑先放着 ) self.filter_class = CoachFilter self.search_fields = ('name',) return super(SchoolListViewSet, self).list(self, request)
上边这样设置后可以通过 "/schools/ID/coaches" 来获取学校下边的所有教练
那问题来了,哈哈哈哈如果 想做成 "/zoos/ID/animals/ID" 类似形式的话,有法子吗?
012017-09-21
Python前后端分离开发Vue+Django REST framework实战
Django REST framework课程视频,RESTFul API前后端分离开发
2873 学习 · 2457 问题
相似问题
drf 一个类能映射多个url么?
回答 1
请教一下如何自动设置域名
回答 1