diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-10-26 20:21:10 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-10-26 20:21:10 +0000 |
| commit | 1746760500a3232e7752626fc33deda7f6b74862 (patch) | |
| tree | a6fabb90eb3cff113f93757ca85bc8140ea85d59 /django/core/handlers/modpython.py | |
| parent | 11b6e1eeb788e8679a6d6d42944471aa3998819d (diff) | |
newforms-admin: Merged to [6612]
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6613 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core/handlers/modpython.py')
| -rw-r--r-- | django/core/handlers/modpython.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/django/core/handlers/modpython.py b/django/core/handlers/modpython.py index d4f5e55011..2a3e03f3dd 100644 --- a/django/core/handlers/modpython.py +++ b/django/core/handlers/modpython.py @@ -136,6 +136,8 @@ class ModPythonRequest(http.HttpRequest): method = property(_get_method) class ModPythonHandler(BaseHandler): + request_class = ModPythonRequest + def __call__(self, req): # mod_python fakes the environ, and thus doesn't process SetEnv. This fixes that os.environ.update(req.subprocess_env) @@ -150,13 +152,16 @@ class ModPythonHandler(BaseHandler): dispatcher.send(signal=signals.request_started) try: - request = ModPythonRequest(req) - response = self.get_response(request) - - # Apply response middleware - for middleware_method in self._response_middleware: - response = middleware_method(request, response) + try: + request = self.request_class(req) + except UnicodeDecodeError: + response = http.HttpResponseBadRequest() + else: + response = self.get_response(request) + # Apply response middleware + for middleware_method in self._response_middleware: + response = middleware_method(request, response) finally: dispatcher.send(signal=signals.request_finished) |
