diff options
| author | Andrew Straw | 2011-06-29 23:02:00 +0200 |
|---|---|---|
| committer | Andrew Straw | 2011-06-29 23:02:00 +0200 |
| commit | f6e4578656632c3a88b113c7349911a89a41bfea (patch) | |
| tree | b14db066873c0f655b1aa6ce35dbb895b948b17e | |
| parent | d714901a60e848e5f3c9f178551fc287aae40f96 (diff) | |
| download | django-rest-framework-f6e4578656632c3a88b113c7349911a89a41bfea.tar.bz2 | |
return 400 BAD REQUEST rather than Django traceback/500 error on failed multipart parse
| -rw-r--r-- | djangorestframework/parsers.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/djangorestframework/parsers.py b/djangorestframework/parsers.py index 3346a26e..37882984 100644 --- a/djangorestframework/parsers.py +++ b/djangorestframework/parsers.py @@ -13,6 +13,7 @@ We need a method to be able to: from django.http import QueryDict from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser +from django.http.multipartparser import MultiPartParserError from django.utils import simplejson as json from djangorestframework import status from djangorestframework.response import ErrorResponse @@ -135,6 +136,10 @@ class MultiPartParser(BaseParser): `files` will be a :class:`QueryDict` containing all the form files. """ 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() |
