如何将渲染器连接到视图集中的特定端点,以及仅该端点

时间:2019-03-07 10:39:22

标签: django-rest-framework

DRF文档显示了如何将渲染器连接到APIView,而不显示如何将其用于ViewSet中的特定操作。鉴于:

class XViewSet(ViewSet):
    serializer_class = XSerializer

    @action(detail=True, methods=['get'])
    def my_action(self, request, pk=None):
         ..

如何为my_action设置特定的渲染器,而不会影响视图集中的其他/默认操作?

我当然可以为该操作创建一个APIView,但这会使urls.py更加混乱

1 个答案:

答案 0 :(得分:1)

据我所知,action接受任何可以作为类属性的参数:

class XViewSet(ViewSet):
    serializer_class = XSerializer

    @action(detail=True, methods=['get'], renderer_classes=[yourrenderer])
    def my_action(self, request, pk=None):
         ..