renderers.py 776 B

1234567891011121314151617181920
  1. from rest_framework import renderers
  2. class PlainTextRenderer(renderers.BaseRenderer):
  3. # Disregard Accept header
  4. media_type = '*/*'
  5. format = 'txt'
  6. def render(self, data, media_type=None, renderer_context=None):
  7. renderer_context = renderer_context or {}
  8. response = renderer_context.get('response')
  9. if response and response.exception:
  10. if not isinstance(data, dict) or data.get('detail', None) is None:
  11. raise ValueError('Expected response.data to be a dict with error details in response.data[\'detail\'], '
  12. 'but got %s:\n\n%s' % (type(response.data), response.data))
  13. response['Content-Type'] = 'text/plain'
  14. return data['detail']
  15. return data