Ashfaq Ur Rahman N
Ashfaq Ur Rahman N

Reputation: 322

In Django REST Framework, Using ModelViewSet with renderers,

I'm using ModelViewSet and struggling to setup a rendering standard. The documentation doesn't show how to use ModelViewSet with drf renderers. I want the output to be of this format:

Format : {'message': <custom message>, 'data': <output from ModelViewSet>}

Code:

class PostViewSet(viewsets.ModelViewSet):
    serializer_class = PostSerializer
    queryset = Post.objects.all()
    permission_classes = [permissions.IsAuthenticated]
    renderer_classes = [GenericAPIRenderer]

# How to Override?
class GenericAPIRenderer(renderers.JSONRenderer):
    charset = 'utf-8'

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

Upvotes: 0

Views: 426

Answers (1)

JPG
JPG

Reputation: 88499

Something like this works without any issue,

class GenericAPIRenderer(renderers.JSONRenderer):
    charset = 'utf-8'

    def render(self, data, accepted_media_type=None, renderer_context=None):
        updated_data = {'message': "some custom message", 'data': data}
        return super().render(updated_data, accepted_media_type, renderer_context)

Upvotes: 1

Related Questions