Simplified description of HttpResponse(<iterator>)

Related to 8b9b8d3b.
This commit is contained in:
Aymeric Augustin 2013-06-29 18:56:00 +02:00
parent acd7b34aaf
commit 7415176507
1 changed files with 5 additions and 21 deletions

View File

@ -555,28 +555,12 @@ file-like object::
Passing iterators Passing iterators
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
Finally, you can pass ``HttpResponse`` an iterator rather than strings. If you Finally, you can pass ``HttpResponse`` an iterator rather than strings.
use this technique, the iterator should return strings. ``HttpResponse`` will consume the iterator immediately, store its content as a
string, and discard it.
Passing an iterator as content to :class:`HttpResponse` creates a If you need the response to be streamed from the iterator to the client, you
streaming response if (and only if) no middleware accesses the must use the :class:`StreamingHttpResponse` class instead.
:attr:`HttpResponse.content` attribute before the response is returned.
.. versionchanged:: 1.5
This technique is fragile and was deprecated in Django 1.5. If you need the
response to be streamed from the iterator to the client, you should use the
:class:`StreamingHttpResponse` class instead.
As of Django 1.7, when :class:`HttpResponse` is instantiated with an
iterator, it will consume it immediately, store the response content as a
string, and discard the iterator.
.. versionchanged:: 1.5
You can now use :class:`HttpResponse` as a file-like object even if it was
instantiated with an iterator. Django will consume and save the content of
the iterator on first access.
Setting header fields Setting header fields
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~