Django休息框架:query_route中的查询参数

Django休息框架:query_route中的查询参数,第1张

概述我有以下ViewSet: class BookViewSet(DefaultsMixin, viewsets.ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer @detail_route() def chapter(self, request,pk=None): 我有以下VIEwSet:
class BookVIEwSet(DefaultsMixin,vIEwsets.ModelVIEwSet):   queryset = Book.objects.all()   serializer_class = BookSerializer   @detail_route()   def chapter(self,request,pk=None):       queryset = Chapter.objects.filter(book__pk=pk)       serializer = ChpaterSerializer(queryset,context={'request':request},many=True)       return Response(serializer.data)

所以url“/ book / {ID} / chapter”有效.
但是我不知道如何配置VIEwSet来拥有像“/ book / {ID} / chapter / {ID}”这样的URL.
也许答案是使用lookup_fIEld或lookup_url_kwarg,但我没有在detail_route案例中找到使用它们.

解决方法 您可以在detail_route中添加url_path,如下所示:
@detail_route(url_name='chapter',url_path='chapter/(?P<chapter_ID>[0-9]+)')def chapter(self,pk=None,chapter_ID=None):   queryset = Chapter.objects.filter(book__pk=pk)   serializer = ChpaterSerializer(queryset,many=True)   return Response(serializer.data)

请注意,默认路由器中的url的名称默认为url_path参数(如果提供).所以视图名称将包含查询参数字符串.通过指定url_name参数,您可以简化.我建议使用方法名称,如果没有指定url_path,那么这是默认值.有了这个,你可以用url来反转

reverse('book-chapter',kwargs={'pk': 1,'chapter_ID': 4})
总结

以上是内存溢出为你收集整理的Django休息框架:query_route中的查询参数全部内容,希望文章能够帮你解决Django休息框架:query_route中的查询参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1207397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存