from rest_framework.response import Response
from rest_framework.serializers import Serializer
from typing import Union
class JsonResponse(Response):
def __init__(self, code=None, msg: Union[str, dict] = 'success',
data=None, status=None, template_name=None, headers=None,
exception=False, content_type=None, **kwargs):
super().__init__(None, status=status)
if isinstance(data, Serializer):
msg = (
'You passed a Serializer instance as data, but '
'probably meant to pass serialized `.data` or '
'`.error`. representation.'
)
raise AssertionError(msg)
# 改变错误提示格式
if isinstance(msg, dict):
for k, v in msg.items():
for i in v:
msg = "%s:%s" % (k, i)
# 自定义返回格式
self.data = {'code': code, 'msg': msg, 'data': data}
self.data.update(kwargs)
self.template_name = template_name
self.exception = exception
self.content_type = content_type
if headers:
for name, value in headers.items():
self[name] = value
继承官方的Response类,然后把里面的内容复制一遍,改一下data的格式。顺便改了一下错误格式
没改的样式
改了之后



