Fixed #3526 -- Added content_type as an alias for mimetype to the HttpResponse constructor. It's a slightly more accurate name. Based on a patch from Simon Willison. Fully backwards compatible.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@5844 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2007-08-11 09:37:42 +00:00
parent 6fd2c25add
commit 0afbca9c60
2 changed files with 21 additions and 5 deletions

View File

@ -212,18 +212,22 @@ class HttpResponse(object):
status_code = 200 status_code = 200
def __init__(self, content='', mimetype=None, status=None): def __init__(self, content='', mimetype=None, status=None,
content_type=None):
from django.conf import settings from django.conf import settings
self._charset = settings.DEFAULT_CHARSET self._charset = settings.DEFAULT_CHARSET
if not mimetype: if mimetype:
mimetype = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE, settings.DEFAULT_CHARSET) content_type = mimetype # For backwards compatibility
if not content_type:
content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
settings.DEFAULT_CHARSET)
if not isinstance(content, basestring) and hasattr(content, '__iter__'): if not isinstance(content, basestring) and hasattr(content, '__iter__'):
self._container = content self._container = content
self._is_string = False self._is_string = False
else: else:
self._container = [content] self._container = [content]
self._is_string = True self._is_string = True
self.headers = {'Content-Type': mimetype} self.headers = {'Content-Type': content_type}
self.cookies = SimpleCookie() self.cookies = SimpleCookie()
if status: if status:
self.status_code = status self.status_code = status

View File

@ -342,7 +342,7 @@ hard-coded strings. If you use this technique, follow these guidelines:
Methods Methods
------- -------
``__init__(content='', mimetype=DEFAULT_CONTENT_TYPE)`` ``__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE)``
Instantiates an ``HttpResponse`` object with the given page content (a Instantiates an ``HttpResponse`` object with the given page content (a
string) and MIME type. The ``DEFAULT_CONTENT_TYPE`` is ``'text/html'``. string) and MIME type. The ``DEFAULT_CONTENT_TYPE`` is ``'text/html'``.
@ -350,6 +350,16 @@ Methods
return strings, and those strings will be joined together to form the return strings, and those strings will be joined together to form the
content of the response. content of the response.
``status`` is the `HTTP Status code`_ for the response.
**(New in Django development version)** ``content_type`` is an alias for
``mimetype``. Historically, the parameter was only called ``mimetype``,
but since this is actually the value included in the HTTP ``Content-Type``
header, it can also include the character set encoding, which makes it
more than just a MIME type specification. If ``mimetype`` is specifiedi
(not None), that value is used. Otherwise, ``content_type`` is used. If
neither is given, the ``DEFAULT_CONTENT_TYPE`` setting is used.
``__setitem__(header, value)`` ``__setitem__(header, value)``
Sets the given header name to the given value. Both ``header`` and Sets the given header name to the given value. Both ``header`` and
``value`` should be strings. ``value`` should be strings.
@ -396,6 +406,8 @@ Methods
``write(content)``, ``flush()`` and ``tell()`` ``write(content)``, ``flush()`` and ``tell()``
These methods make an ``HttpResponse`` instance a file-like object. These methods make an ``HttpResponse`` instance a file-like object.
.. _HTTP Status code: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10
HttpResponse subclasses HttpResponse subclasses
----------------------- -----------------------