在Django Rest Framework中,@ link是否可以在没有PK的情况下进行路由?

我想在视图集中链接“/ tags / browse”,但我认为装饰器强制“/ tags /:id / browse”.这是我的观点:

class TagViewSet(viewsets.ModelViewSet):
    queryset = Tag.objects.all()
    serializer_class = TagSerializer

    @link(permission_classes=[])
    def browse(self, request, pk=None):
        ...
        return Response(data)

我想有标签的通用CRUD API,但我还添加了一个返回一些聚合数据的特殊浏览.当前的@link有效,但我必须转到“/ tags / 1 / browse”而不是通用的“/ tags / browse”.在这里有一种直接的方式来做后者吗?

(我可以创建一个单独的路径,但如果可能的话,更愿意将所有内容封装在此视图集中)

谢谢!

最佳答案 截至2014年6月,目前尚未得到支持,但它已合并到(长期运行的)2.4分支中.

看看这两个……

https://github.com/tomchristie/django-rest-framework/pull/886
https://github.com/tomchristie/django-rest-framework/pull/1047

您可以通过复制那些PR中的工作(或者通过针对2.4分支而不是从最新的PyPI版本运行)来将类似的东西拉入项目中

点赞