parent
c7b54fb2d5
commit
5aed96cb02
2 changed files with 57 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||||||
|
from rest_framework.renderers import JSONRenderer |
||||||
|
|
||||||
|
|
||||||
|
class MyRenderers(JSONRenderer): |
||||||
|
def render(self, data, accepted_media_type=None, renderer_context=None): |
||||||
|
print(data) |
||||||
|
print(accepted_media_type) |
||||||
|
print(renderer_context) |
||||||
|
if renderer_context: |
||||||
|
if isinstance(data, dict): |
||||||
|
msg = data.pop('msg', '请求成功') |
||||||
|
code = data.pop('code', renderer_context['response'].status_code) |
||||||
|
next = data.pop('next', data['next']) |
||||||
|
if 'result' in data: |
||||||
|
data = data['result'] |
||||||
|
else: |
||||||
|
next = '' |
||||||
|
|
||||||
|
return_data = { |
||||||
|
'code': renderer_context['response'].status_code, |
||||||
|
'msg': renderer_context['response'].status_text, |
||||||
|
'next': next, |
||||||
|
'data': data, |
||||||
|
} |
||||||
|
return super().render(return_data, accepted_media_type, renderer_context) |
||||||
|
else: |
||||||
|
return super().render(data, accepted_media_type, renderer_context) |
||||||
|
|
@ -0,0 +1,29 @@ |
|||||||
|
from rest_framework.response import Response |
||||||
|
from rest_framework.serializers import Serializer |
||||||
|
|
||||||
|
|
||||||
|
# 直接复写Response就行 |
||||||
|
class MyResponse(Response): |
||||||
|
def __init__(self, data=None, code=None, msg=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) |
||||||
|
|
||||||
|
self.data = dict(code=code, status=status, data=data) |
||||||
|
print(kwargs) |
||||||
|
self.data.update(kwargs) |
||||||
|
print(self.data) |
||||||
|
self.template_name = template_name |
||||||
|
self.exception = exception |
||||||
|
self.content_type = content_type |
||||||
|
|
||||||
|
if headers: |
||||||
|
for name, value in headers.items(): |
||||||
|
self[name] = value |
Loading…
Reference in new issue