rendererresponse.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. '''
  2. 自定义返回处理
  3. '''
  4. # 导入控制返回的JSON格式的类
  5. from rest_framework.renderers import JSONRenderer
  6. class CustomRender(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. renderer_context["response"].status_code = 200
  23. ret = {
  24. 'code': code,
  25. 'msg': msg,
  26. 'data': payload,
  27. }
  28. # 返回JSON数据
  29. return super().render(ret, accepted_media_type, renderer_context)
  30. else:
  31. return super().render(data, accepted_media_type, renderer_context)