''' 自定义返回处理 ''' # 导入控制返回的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)