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