from rest_framework.renderers import JSONRenderer class CustomRenderer(JSONRenderer): def render(self, data, accepted_media_type=None, renderer_context=None): print('CustomRenderer') if renderer_context: if isinstance(data, dict): msg = data.pop('msg', 'success') code = data.pop('code', 200) if 'status' in data.keys(): del data['status'] data = data['data'] else: data = data return_data = { 'msg': msg, 'code': code, 'data': { 'list': data, 'total': len(data) } } return super().render(return_data, accepted_media_type, renderer_context) else: return super().render(data, accepted_media_type, renderer_context)