Skip to content

Commit

Permalink
[soc2009/http-wsgi-improvements] Added the codec attribute/property t…
Browse files Browse the repository at this point in the history
…o HttpResponse, and added docs for recent work with charsets/codecs.

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/http-wsgi-improvements@11214 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
ccahoon committed Jul 11, 2009
1 parent c53880e commit bf66b53
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
9 changes: 9 additions & 0 deletions django/http/__init__.py
Expand Up @@ -373,6 +373,15 @@ def _configure_body_encoding(self):
if not self._codec:
self._codec = UnsupportedCharset

def _get_codec(self):
return self._codec

def _set_codec(self, value):
if hasattr(value, "name"):
self._codec = value

codec = property(_get_codec, _set_codec)

def _get_status_code(self):
self._configure_body_encoding()
if self._codec is UnsupportedCharset:
Expand Down
15 changes: 14 additions & 1 deletion docs/ref/request-response.txt
Expand Up @@ -471,10 +471,19 @@ Attributes
A normal Python string representing the content, encoded from a Unicode
object if necessary.

.. attribute :: HttpResponse.codec

A class that contains the attribute ``name``, which contains an alias or
name of a codec (from the module ``codecs``) that will be used to encode
the response content. This value is set automatically in response to a
``request`` argument that contains an Accept-Charset header or content_type
argument that contains a charset value. The priority for setting the codec/
charset is specified in HttpResponse.charsets.

Methods
-------

.. method:: HttpResponse.__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE)
.. method:: HttpResponse.__init__(content='', mimetype=None, status=200, content_type=DEFAULT_CONTENT_TYPE, request=None)

Instantiates an ``HttpResponse`` object with the given page content (a
string) and MIME type. The ``DEFAULT_CONTENT_TYPE`` is ``'text/html'``.
Expand All @@ -495,6 +504,10 @@ Methods
Otherwise, ``content_type`` is used. If neither is given, the
``DEFAULT_CONTENT_TYPE`` setting is used.

``request`` is the request that triggered this response. It can be used in
the event that a view cares about dealing with request headers, in
particular the Accept-Charset header.

.. method:: HttpResponse.__setitem__(header, value)

Sets the given header name to the given value. Both ``header`` and
Expand Down

0 comments on commit bf66b53

Please sign in to comment.