Python 定义并使用自定义渲染器Django Rest框架视图

Python 定义并使用自定义渲染器Django Rest框架视图,python,django,django-rest-framework,renderer,Python,Django,Django Rest Framework,Renderer,我正在尝试覆盖django rest框架视图的CSV渲染器导入。以下是如何做到这一点的: class CustomCSVRenderer(BaseCSVRenderer): def render(): do something def tablize(): do something 我在与所讨论的视图相同的python类views.py中定义了CustomCSVRenderer: class MyView(ListAPIView, CustomMixinS

我正在尝试覆盖django rest框架视图的CSV渲染器导入。以下是如何做到这一点的:

class CustomCSVRenderer(BaseCSVRenderer):
   def render():
      do something

   def tablize():
      do something
我在与所讨论的视图相同的python类views.py中定义了CustomCSVRenderer:

class MyView(ListAPIView, CustomMixinSet):

    renderer_classes = (CustomRenderer, JSONRenderer)
当我试着调试这个实现时,我的pdb调试器从不点击CustomCSVRenderer,而是根据django restframework使用的一些底层渲染器得到响应

可能是什么问题?如何知道django rest framework使用的渲染器是什么?

正如@Daniel Roseman在评论部分所述,您需要做更多的工作才能使这个自定义渲染器正常工作

从文档中:

要实现自定义渲染器,应覆盖BaseRenderer,设置.media_type和.format属性,并实现.renderself、data、media_type=None、renderer_context=None方法

因此,您的CustomCSVRenderer应该如下所示:

class CustomCSVRenderer(BaseCSVRenderer):
    media_type = 'text/csv'
    format = 'csv'

    def render(self, data, media_type=None, renderer_context=None):
       ...

您尚未设置趋势器的媒体类型和格式属性,如中所示。