Commit f6e45786 by Andrew Straw

return 400 BAD REQUEST rather than Django traceback/500 error on failed multipart parse

parent d714901a
...@@ -13,6 +13,7 @@ We need a method to be able to: ...@@ -13,6 +13,7 @@ We need a method to be able to:
from django.http import QueryDict from django.http import QueryDict
from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser
from django.http.multipartparser import MultiPartParserError
from django.utils import simplejson as json from django.utils import simplejson as json
from djangorestframework import status from djangorestframework import status
from djangorestframework.response import ErrorResponse from djangorestframework.response import ErrorResponse
...@@ -135,6 +136,10 @@ class MultiPartParser(BaseParser): ...@@ -135,6 +136,10 @@ class MultiPartParser(BaseParser):
`files` will be a :class:`QueryDict` containing all the form files. `files` will be a :class:`QueryDict` containing all the form files.
""" """
upload_handlers = self.view.request._get_upload_handlers() upload_handlers = self.view.request._get_upload_handlers()
django_parser = DjangoMultiPartParser(self.view.request.META, stream, upload_handlers) try:
django_parser = DjangoMultiPartParser(self.view.request.META, stream, upload_handlers)
except MultiPartParserError, exc:
raise ErrorResponse(status.HTTP_400_BAD_REQUEST,
{'detail': 'multipart parse error - %s' % unicode(exc)})
return django_parser.parse() return django_parser.parse()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment