drf 二次封装Response
1,在utils文件夹中常见response.py文件:
from rest_framework.response import Response from rest_framework.utils.serializer_helpers import ReturnDict #序列化中返回错误的类型 class APIResponse(Response): # 格式化data def __init__(self, code=0, msg='success', results=None, http_status=200, headers=None, exception=False, **kwargs): # print(111,msg, type(msg)) if isinstance(msg, ReturnDict): # 判断序列化中是否返回错误 for k, v in msg.items(): msg = '{}:{}'.format(k, v[0]) #获取到第一个错误即break break data = { 'status': code, 'msg': msg } if results is not None: data['results'] = results data.update(**kwargs) # 将传入的其他数据放入data字典 # 处理完毕数据后,剩下的过程还是丢给Response类中的init做完 super(APIResponse, self).__init__( data=data, status=http_status, headers=headers, exception=exception)