【发布时间】:2017-05-22 12:10:15
【问题描述】:
我有 Django 1.10 项目和以下用户定义的中间件
class RequestLogMiddleWare(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response.data['detail'] = 'I have been edited'
return response
和 REST 端点视图:
def r_mobile_call_log(request):
return Response({'success': True,
'detail': 'Before having been edited'},
status=status.HTTP_200_OK)
所以我希望客户端的最终响应是:
{'success': 'True', 'detail': 'I have been edited'}
但是,我看到的是:
{'success': 'True', 'detail': 'Before having been edited'}
我在中间件的call方法中放了一个断点,以确保函数真的被执行了,就OK了。 response.data["details"] 只是不会改变它的价值。有谁知道这是什么原因?
【问题讨论】:
标签: django django-rest-framework django-middleware