diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-05-17 13:39:00 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-05-18 19:40:41 +0200 |
| commit | 91727c76cda3f8bf286ee69652bc3625f150f6e7 (patch) | |
| tree | fd1e158dc4a1253860314df62c5cf6c8336d8937 | |
| parent | 02eca6c0e238c43f888e9e17c373dbb479c868bb (diff) | |
Cleaned up WSGIRequestHandler get_environ to be Python 3 compatible
headers.type/typeheader attributes are gone in Python 3. Thanks
Vinay Sajip for the inspiration of his Python 3 branch.
| -rw-r--r-- | django/core/servers/basehttp.py | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/django/core/servers/basehttp.py b/django/core/servers/basehttp.py index 82c5aca149..be2962d660 100644 --- a/django/core/servers/basehttp.py +++ b/django/core/servers/basehttp.py @@ -146,25 +146,23 @@ class WSGIRequestHandler(simple_server.WSGIRequestHandler, object): env['PATH_INFO'] = urllib.unquote(path) env['QUERY_STRING'] = query env['REMOTE_ADDR'] = self.client_address[0] + env['CONTENT_TYPE'] = self.headers.get('content-type', 'text/plain') - if self.headers.typeheader is None: - env['CONTENT_TYPE'] = self.headers.type - else: - env['CONTENT_TYPE'] = self.headers.typeheader - - length = self.headers.getheader('content-length') + length = self.headers.get('content-length') if length: env['CONTENT_LENGTH'] = length - for h in self.headers.headers: - k,v = h.split(':',1) - k=k.replace('-','_').upper(); v=v.strip() - if k in env: - continue # skip content length, type,etc. - if 'HTTP_'+k in env: - env['HTTP_'+k] += ','+v # comma-separate multiple headers + for key, value in self.headers.items(): + key = key.replace('-','_').upper() + value = value.strip() + if key in env: + # Skip content length, type, etc. + continue + if 'HTTP_' + key in env: + # Comma-separate multiple headers + env['HTTP_' + key] += ',' + value else: - env['HTTP_'+k] = v + env['HTTP_' + key] = value return env def log_message(self, format, *args): |
