Anonymous committed f099ca9

Added more dict-like methods to HttpResponse as part of the response.headers -> response._headers move, and fixed a few direct uses of response.headers in Django itself. Thanks to PhiR for tracking down and slaying these bugs.

  • Participants
  • Parent commits 6ca78a5

Comments (0)

Files changed (4)

File django/core/handlers/

         # Convert our custom HttpResponse object back into the mod_python req.
         req.content_type = response['Content-Type']
-        for key, value in response.headers.items():
-            if key != 'Content-Type':
+        for key, value in response.items():
+            if key != 'content-type':
                 req.headers_out[str(key)] = str(value)
         for c in response.cookies.values():
             req.headers_out.add('Set-Cookie', c.output(header=''))

File django/core/handlers/

         except KeyError:
             status_text = 'UNKNOWN STATUS CODE'
         status = '%s %s' % (response.status_code, status_text)
-        response_headers = [(str(k), str(v)) for k, v in response.headers.items()]
+        response_headers = [(str(k), str(v)) for k, v in response.items()]
         for c in response.cookies.values():
             response_headers.append(('Set-Cookie', str(c.output(header=''))))
         start_response(status, response_headers)

File django/http/

         return self._headers.has_key(header.lower())
     __contains__ = has_header
+    def items(self):
+        return self._headers.items()
+    def get(self, header, alternate):
+        return self._headers.get(header, alternate)
     def set_cookie(self, key, value='', max_age=None, expires=None, path='/', domain=None, secure=None):
         self.cookies[key] = value

File django/middleware/

         # Avoid gzipping if we've already got a content-encoding or if the
         # content-type is Javascript (silly IE...)
-        is_js = "javascript" in response.headers.get('Content-Type', '').lower()
+        is_js = "javascript" in response.get('Content-Type', '').lower()
         if response.has_header('Content-Encoding') or is_js:
             return response