Fixed #13040 -- Added info on where to import File class from to File reference docs, and improved Sphinx formatting. Thanks to stherrien for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14339 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Gabriel Hurley 2010-10-24 09:12:40 +00:00
parent e4c0c377dd
commit 5d02b86afb
1 changed files with 59 additions and 53 deletions

View File

@ -3,100 +3,106 @@ The ``File`` object
.. currentmodule:: django.core.files .. currentmodule:: django.core.files
.. class:: File(file_object)
``File`` attributes and methods ``File`` attributes and methods
------------------------------- -------------------------------
Django's ``File`` has the following attributes and methods: The :mod:`django.core.files` module contains a built-in class for basic file
handling in Django. The :class:`File` class has the following attributes and
methods:
.. attribute:: File.name .. class:: File(file_object)
The name of file including the relative path from :setting:`MEDIA_ROOT`. .. attribute:: name
.. attribute:: File.path The name of file including the relative path from :setting:`MEDIA_ROOT`.
The absolute path to the file's location on a local filesystem. .. attribute:: path
:doc:`Custom file storage systems </howto/custom-file-storage>` may not store The absolute path to the file's location on a local filesystem.
files locally; files stored on these systems will have a ``path`` of
``None``.
.. attribute:: File.url :doc:`Custom file storage systems </howto/custom-file-storage>` may not store
files locally; files stored on these systems will have a ``path`` of
``None``.
The URL where the file can be retrieved. This is often useful in .. attribute:: url
:doc:`templates </topics/templates>`; for example, a bit of a template for
displaying a ``Car`` (see above) might look like:
.. code-block:: html+django
<img src='{{ car.photo.url }}' alt='{{ car.name }}' /> The URL where the file can be retrieved. This is often useful in
:doc:`templates </topics/templates>`; for example, a bit of a template for
displaying a ``Car`` (see above) might look like:
.. code-block:: html+django
.. attribute:: File.size <img src='{{ car.photo.url }}' alt='{{ car.name }}' />
The size of the file in bytes. .. attribute:: size
.. method:: File.open(mode=None) The size of the file in bytes.
Open or reopen the file (which by definition also does ``File.seek(0)``). .. method:: open([mode=None])
The ``mode`` argument allows the same values as Python's standard
``open()``.
When reopening a file, ``mode`` will override whatever mode the file was Open or reopen the file (which by definition also does ``File.seek(0)``).
originally opened with; ``None`` means to reopen with the original mode. The ``mode`` argument allows the same values as Python's standard
``open()``.
.. method:: File.read(num_bytes=None) When reopening a file, ``mode`` will override whatever mode the file was
originally opened with; ``None`` means to reopen with the original mode.
Read content from the file. The optional ``size`` is the number of bytes to .. method:: read([num_bytes=None])
read; if not specified, the file will be read to the end.
.. method:: File.__iter__() Read content from the file. The optional ``size`` is the number of bytes to
read; if not specified, the file will be read to the end.
Iterate over the file yielding one line at a time. .. method:: __iter__()
.. method:: File.chunks(chunk_size=None) Iterate over the file yielding one line at a time.
Iterate over the file yielding "chunks" of a given size. ``chunk_size`` .. method:: chunks([chunk_size=None])
defaults to 64 KB.
This is especially useful with very large files since it allows them to be Iterate over the file yielding "chunks" of a given size. ``chunk_size``
streamed off disk and avoids storing the whole file in memory. defaults to 64 KB.
.. method:: File.multiple_chunks(chunk_size=None) This is especially useful with very large files since it allows them to be
streamed off disk and avoids storing the whole file in memory.
Returns ``True`` if the file is large enough to require multiple chunks to .. method:: multiple_chunks([chunk_size=None])
access all of its content give some ``chunk_size``.
.. method:: File.write(content) Returns ``True`` if the file is large enough to require multiple chunks to
access all of its content give some ``chunk_size``.
Writes the specified content string to the file. Depending on the storage .. method:: write([content])
system behind the scenes, this content might not be fully committed until
``close()`` is called on the file.
.. method:: File.close() Writes the specified content string to the file. Depending on the storage
system behind the scenes, this content might not be fully committed until
``close()`` is called on the file.
Close the file. .. method:: close()
Close the file.
.. currentmodule:: django.core.files.images
Additional ``ImageField`` attributes Additional ``ImageField`` attributes
------------------------------------ ------------------------------------
.. attribute:: File.width .. class:: ImageFile(file_object)
Width of the image.
.. attribute:: File.height .. attribute:: width
Width of the image.
Height of the image. .. attribute:: height
Height of the image.
.. currentmodule:: django.core.files
Additional methods on files attached to objects Additional methods on files attached to objects
----------------------------------------------- -----------------------------------------------
.. highlight:: pycon
Any :class:`File` that's associated with an object (as with ``Car.photo``, Any :class:`File` that's associated with an object (as with ``Car.photo``,
above) will also have a couple of extra methods: above) will also have a couple of extra methods:
.. method:: File.save(name, content, save=True) .. method:: File.save(name, content, [save=True])
Saves a new file with the file name and contents provided. This will not Saves a new file with the file name and contents provided. This will not
replace the existing file, but will create a new file and update the object replace the existing file, but will create a new file and update the object
@ -113,7 +119,7 @@ above) will also have a couple of extra methods:
Note that the ``content`` argument must be an instance of Note that the ``content`` argument must be an instance of
:class:`File` or of a subclass of :class:`File`. :class:`File` or of a subclass of :class:`File`.
.. method:: File.delete(save=True) .. method:: File.delete([save=True])
Remove the file from the model instance and delete the underlying file. The Remove the file from the model instance and delete the underlying file. The
``save`` argument works as above. ``save`` argument works as above.