gpt4 book ai didi

django - 将自定义路由添加到 viewsets.ModelViewSet

转载 作者:行者123 更新时间:2023-12-03 15:18:30 25 4
gpt4 key购买 nike

在文档中有带有自定义 url 的方法示例:
http://www.django-rest-framework.org/tutorial/6-viewsets-and-routers

class SnippetViewSet(viewsets.ModelViewSet):
...

@link(renderer_classes=[renderers.StaticHTMLRenderer])
def highlight(self, request, *args, **kwargs):
snippet = self.get_object()
return Response(snippet.highlighted)

此示例添加以下路由:
url(r'^snippets/(?P<pk>[0-9]+)/highlight/$', snippet_highlight, name='snippet-highlight'),

可以像这样添加没有 pk 参数的网址吗?
r'^snippets/highlight/$'

最佳答案

是的,你可以这样做。只需在 View 集中添加您的方法 list_route装饰器。

from rest_framework.decorators import list_route  

class SnippetViewSet(viewsets.ModelViewSet):
...

@list_route(renderer_classes=[renderers.StaticHTMLRenderer])
def highlight(self, request, *args, **kwargs):
...

它将添加一个没有 pk 的网址参数如:
r'^snippets/highlight/$'

您甚至可以使用 methods 指定它支持的方法。装饰器中的参数。

http://www.django-rest-framework.org/api-guide/routers/#usage

关于django - 将自定义路由添加到 viewsets.ModelViewSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com