自定义封装response对象
# 自己封装一个CommonResponse对象,使用方法如下
return CoomonResponse('100','成功',boo_ser.data)
return CoomonResponse('101','验证失败',boo_ser.errors)
# 1. 自已2b版:太固定了很不好,没办法传原来response的其他参数
from rest_framework.response import Response
class CommonResponse(Response):
def __init__(self, status, msg, data):
self.status = status
self.msg = msg
self.data = data
super().__init__(self.get_dict)
@property
def get_dict(self):
return {'status': self.status, 'msg': self.msg, 'data': self.data}
# 2.老师高级通用版
from rest_framework.response import Response
class APIResponse(Response):
def __init__(self, code=100, msg='成功', data=None, status=None, headers=None, **kwargs):
dic = {'code': code, 'msg': msg}
if data:
dic['data'] = data
dic.update(kwargs) # 可以灵活的添加,需要返回的键值对
super().__init__(data=dic, status=status, headers=headers)
猴子补丁
# 程序运行的过程中,动态的替换对象的属性或方法