renderers.py 739 B

123456789101112131415161718192021222324
  1. import json
  2. import yaml
  3. from rest_framework import renderers
  4. class PlainTextRenderer(renderers.BaseRenderer):
  5. # Disregard Accept header
  6. media_type = '*/*'
  7. format = 'txt'
  8. def render(self, data, media_type=None, renderer_context=None):
  9. renderer_context = renderer_context or {}
  10. response = renderer_context.get('response')
  11. if response and response.exception:
  12. response['Content-Type'] = 'text/plain'
  13. try:
  14. return data['detail']
  15. except:
  16. data = json.loads(json.dumps(data)) # stringify exception objects in potentially nested data structure
  17. return yaml.safe_dump(data, default_flow_style=False)
  18. return data