diff options
| author | farhan <farhanalirazaazeemi@gmail.com> | 2026-01-06 00:34:39 +0500 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-02-10 17:59:02 -0500 |
| commit | 7732f942a98a709750fc1fed2c69741183844a3c (patch) | |
| tree | 6d290a5577ef26eda941243874eba700540c6495 /django/http | |
| parent | 56ed37e17e5b1a509aa68a0c797dcff34fcc1366 (diff) | |
Fixed #36841 -- Made multipart parser class pluggable on HttpRequest.
Diffstat (limited to 'django/http')
| -rw-r--r-- | django/http/request.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/django/http/request.py b/django/http/request.py index c8adde768d..573ae2b229 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -56,6 +56,7 @@ class HttpRequest: # The encoding used in GET/POST dicts. None means use default setting. _encoding = None _upload_handlers = [] + _multipart_parser_class = MultiPartParser def __init__(self): # WARNING: The `WSGIRequest` subclass doesn't call `super`. @@ -364,6 +365,19 @@ class HttpRequest: ) self._upload_handlers = upload_handlers + @property + def multipart_parser_class(self): + return self._multipart_parser_class + + @multipart_parser_class.setter + def multipart_parser_class(self, multipart_parser_class): + if hasattr(self, "_files"): + raise RuntimeError( + "You cannot set the multipart parser class after the upload has been " + "processed." + ) + self._multipart_parser_class = multipart_parser_class + def parse_file_upload(self, META, post_data): """Return a tuple of (POST QueryDict, FILES MultiValueDict).""" self.upload_handlers = ImmutableList( @@ -373,7 +387,9 @@ class HttpRequest: "processed." ), ) - parser = MultiPartParser(META, post_data, self.upload_handlers, self.encoding) + parser = self.multipart_parser_class( + META, post_data, self.upload_handlers, self.encoding + ) return parser.parse() @property |
