Browse Source

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.
Jorge Barata González 10 năm trước cách đây
mục cha
commit
931a340f1f
1 tập tin đã thay đổi với 17 bổ sung0 xóa
  1. 17 0
      docs/topics/files.txt

+ 17 - 0
docs/topics/files.txt

@@ -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
     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
 ===================