You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
from rest_framework.renderers import JSONRenderer
|
|
|
|
|
|
|
|
|
|
|
|
class CustomRenderer(JSONRenderer):
|
|
|
|
def render(self, data, accepted_media_type=None, renderer_context=None):
|
|
|
|
print('CustomRenderer')
|
|
|
|
if renderer_context:
|
|
|
|
if isinstance(data, dict):
|
|
|
|
msg = data.pop('msg', 'success')
|
|
|
|
code = data.pop('code', 200)
|
|
|
|
|
|
|
|
if 'status' in data.keys():
|
|
|
|
del data['status']
|
|
|
|
data = data['data']
|
|
|
|
else:
|
|
|
|
data = data
|
|
|
|
return_data = {
|
|
|
|
'msg': msg,
|
|
|
|
'code': code,
|
|
|
|
'data': {
|
|
|
|
'list': data,
|
|
|
|
'total': len(data)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return super().render(return_data, accepted_media_type, renderer_context)
|
|
|
|
else:
|
|
|
|
return super().render(data, accepted_media_type, renderer_context)
|