Fixed #15590 -- Documented how the path of a FileField can be changed.
Thanks simon29 for report, and freakboy3742, floledermann, jacob, claudep and collinanderson for discussing the task.
This commit is contained in:
parent
c5cc332bf2
commit
931a340f1f
|
@ -55,6 +55,23 @@ it has all the methods and attributes described below.
|
||||||
file name used on disk cannot be relied on until after the model has been
|
file name used on disk cannot be relied on until after the model has been
|
||||||
saved.
|
saved.
|
||||||
|
|
||||||
|
For example, you can change the file name by setting the file's
|
||||||
|
:attr:`~django.core.files.File.name` to a path relative to the file storage's
|
||||||
|
location (:setting:`MEDIA_ROOT` if you are using the default
|
||||||
|
:class:`~django.core.files.storage.FileSystemStorage`)::
|
||||||
|
|
||||||
|
>>> import os
|
||||||
|
>>> from django.conf import settings
|
||||||
|
>>> initial_path = car.photo.path
|
||||||
|
>>> car.photo.name = 'cars/chevy_ii.jpg'
|
||||||
|
>>> new_path = settings.MEDIA_ROOT + car.photo.name
|
||||||
|
>>> # Move the file on the filesystem
|
||||||
|
>>> os.rename(initial_path, new_path)
|
||||||
|
>>> car.save()
|
||||||
|
>>> car.photo.path
|
||||||
|
'/media/cars/chevy_ii.jpg'
|
||||||
|
>>> car.photo.path == new_path
|
||||||
|
True
|
||||||
|
|
||||||
The ``File`` object
|
The ``File`` object
|
||||||
===================
|
===================
|
||||||
|
|
Loading…
Reference in New Issue