aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/parsers.py6
-rw-r--r--rest_framework/request.py9
-rw-r--r--rest_framework/views.py15
3 files changed, 15 insertions, 15 deletions
diff --git a/rest_framework/parsers.py b/rest_framework/parsers.py
index 6287b842..7e13c3d8 100644
--- a/rest_framework/parsers.py
+++ b/rest_framework/parsers.py
@@ -119,8 +119,10 @@ class MultiPartParser(BaseParser):
`.files` will be a `QueryDict` containing all the form files.
"""
parser_context = parser_context or {}
- meta = parser_context['meta']
- upload_handlers = parser_context['upload_handlers']
+ request = parser_context['request']
+ meta = request.META
+ upload_handlers = request.upload_handlers
+
try:
parser = DjangoMultiPartParser(meta, stream, upload_handlers)
data, files = parser.parse()
diff --git a/rest_framework/request.py b/rest_framework/request.py
index 6f9cf09a..d739d27d 100644
--- a/rest_framework/request.py
+++ b/rest_framework/request.py
@@ -88,17 +88,12 @@ class Request(object):
self._stream = Empty
if self.parser_context is None:
- self.parser_context = self._default_parser_context(request)
+ self.parser_context = {}
+ self.parser_context['request'] = self
def _default_negotiator(self):
return api_settings.DEFAULT_CONTENT_NEGOTIATION()
- def _default_parser_context(self, request):
- return {
- 'upload_handlers': request.upload_handlers,
- 'meta': request.META,
- }
-
@property
def method(self):
"""
diff --git a/rest_framework/views.py b/rest_framework/views.py
index 1be2593c..066c0bb9 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -161,9 +161,12 @@ class APIView(View):
Returns a dict that is passed through to Parser.parse(),
as the `parser_context` keyword argument.
"""
+ # Note: Additionally `request` will also be added to the context
+ # by the Request object.
return {
- 'upload_handlers': http_request.upload_handlers,
- 'meta': http_request.META,
+ 'view': self,
+ 'args': getattr(self, 'args', ()),
+ 'kwargs': getattr(self, 'kwargs', {})
}
def get_renderer_context(self):
@@ -171,13 +174,13 @@ class APIView(View):
Returns a dict that is passed through to Renderer.render(),
as the `renderer_context` keyword argument.
"""
- # Note: Additionally 'response' will also be set on the context,
+ # Note: Additionally 'response' will also be added to the context,
# by the Response object.
return {
'view': self,
- 'request': self.request,
- 'args': self.args,
- 'kwargs': self.kwargs
+ 'args': getattr(self, 'args', ()),
+ 'kwargs': getattr(self, 'kwargs', {}),
+ 'request': getattr(self, 'request', None)
}
# API policy instantiation methods