rendererresponse.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. '''
  2. 自定义返回处理
  3. '''
  4. # 导入控制返回的JSON格式的类
  5. from rest_framework.renderers import JSONRenderer
  6. class customrenderer(JSONRenderer):
  7. # 重构render方法
  8. def render(self, data, accepted_media_type=None, renderer_context=None):
  9. # print(data)
  10. # print(renderer_context["response"])
  11. # print(renderer_context["response"].status_code)
  12. # print(renderer_context["response"].accepted_media_type)
  13. if renderer_context:
  14. if isinstance(data, dict):
  15. msg = data.pop('msg', 'success')
  16. code = data.pop('code', renderer_context["response"].status_code)
  17. payload = data.pop('data', data)
  18. else:
  19. msg = "success"
  20. code = renderer_context["response"].status_code
  21. payload = data
  22. ret = {
  23. 'code': code,
  24. 'msg': msg,
  25. 'data': payload,
  26. }
  27. # 返回JSON数据
  28. return super().render(ret, accepted_media_type, renderer_context)
  29. else:
  30. return super().render(data, accepted_media_type, renderer_context)