| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- '''
- 自定义返回处理
- '''
- # 导入控制返回的JSON格式的类
- from rest_framework.renderers import JSONRenderer
- class CustomRender(JSONRenderer):
- # 重构render方法
- def render(self, data, accepted_media_type=None, renderer_context=None):
- # print(data)
- # print(renderer_context["response"])
- # print(renderer_context["response"].status_code)
- # print(renderer_context["response"].accepted_media_type)
- if renderer_context:
- # 优化处理指定返回code的数据
- if isinstance(data, dict) and renderer_context["response"].status_code == 200 and data.get("mtg_name"):
- ret = {
- 'code': "000000",
- 'msg': "success",
- 'data': data,
- }
- return super().render(ret, accepted_media_type, renderer_context)
- if isinstance(data, dict):
- msg = data.pop('msg', 'success')
- code = data.pop('code', renderer_context["response"].status_code)
- payload = data.pop('data', data)
- else:
- msg = "success"
- code = renderer_context["response"].status_code
- payload = data
- renderer_context["response"].status_code = 200
- ret = {
- 'code': code,
- 'msg': msg,
- 'data': payload,
- }
- # 返回JSON数据
- return super().render(ret, accepted_media_type, renderer_context)
- else:
- return super().render(data, accepted_media_type, renderer_context)
|