【问题标题】:How to connect a renderer to a specific endpoint in a viewset, and only that endpoint如何将渲染器连接到视图集中的特定端点,并且仅连接到该端点
【发布时间】:2019-03-07 10:39:22
【问题描述】:

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 更加混乱

【问题讨论】:

标签: django-rest-framework


【解决方案1】:

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

class XViewSet(ViewSet):
    serializer_class = XSerializer

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

【讨论】:

  • 我认为文档-PR 存在于我的未来,因此其他一些可怜的灵魂不需要为此依赖 SO :)
  • 期待它:)
猜你喜欢
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2012-02-08
  • 1970-01-01
  • 2021-10-03
相关资源
最近更新 更多