1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

magic-removal: Merged to [2675]

git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2676 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-04-11 13:45:15 +00:00
parent 737a317a23
commit 15e368eed6
2 changed files with 17 additions and 8 deletions

View File

@ -154,10 +154,10 @@ class HttpResponse(object):
if not mimetype:
mimetype = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE, settings.DEFAULT_CHARSET)
if hasattr(content, '__iter__'):
self.iterator = content
self._iterator = content
self._is_string = False
else:
self.iterator = [content]
self._iterator = [content]
self._is_string = True
self.headers = {'Content-Type': mimetype}
self.cookies = SimpleCookie()
@ -203,23 +203,32 @@ class HttpResponse(object):
pass
def _get_content(self):
content = ''.join(self.iterator)
content = ''.join(self._iterator)
if isinstance(content, unicode):
content = content.encode(self._charset)
return content
def _set_content(self, value):
self.iterator = [value]
self._iterator = [value]
self._is_string = True
content = property(_get_content, _set_content)
def _get_iterator(self):
"Output iterator. Converts data into client charset if necessary."
for chunk in self._iterator:
if isinstance(chunk, unicode):
chunk = chunk.encode(self._charset)
yield chunk
iterator = property(_get_iterator)
# The remaining methods partially implement the file-like object interface.
# See http://docs.python.org/lib/bltin-file-objects.html
def write(self, content):
if not self._is_string:
raise Exception, "This %s instance is not writable" % self.__class__
self.iterator.append(content)
self._iterator.append(content)
def flush(self):
pass
@ -227,7 +236,7 @@ class HttpResponse(object):
def tell(self):
if not self._is_string:
raise Exception, "This %s instance cannot tell its position" % self.__class__
return sum([len(chunk) for chunk in self.iterator])
return sum([len(chunk) for chunk in self._iterator])
class HttpResponseRedirect(HttpResponse):
def __init__(self, redirect_to):

View File

@ -655,14 +655,14 @@ returns an empty string.
get_FOO_size()
--------------
For every ``FileField``, the object will have a ``get_FOO_filename()`` method,
For every ``FileField``, the object will have a ``get_FOO_size()`` method,
where ``FOO`` is the name of the field. This returns the size of the file, in
bytes. (Behind the scenes, it uses ``os.path.getsize``.)
save_FOO_file(filename, raw_contents)
-------------------------------------
For every ``FileField``, the object will have a ``get_FOO_filename()`` method,
For every ``FileField``, the object will have a ``save_FOO_file()`` method,
where ``FOO`` is the name of the field. This saves the given file to the
filesystem, using the given filename. If a file with the given filename already
exists, Django adds an underscore to the end of the filename (but before the