summaryrefslogtreecommitdiff
path: root/django/db/models/fields/files.py
diff options
context:
space:
mode:
authorBrian Helba <brian.helba@kitware.com>2020-08-24 15:27:22 -0400
committerCarlton Gibson <carlton@noumenal.es>2020-09-02 11:06:18 +0200
commit2d42e23b6d8fd76f93a96b2310b2c9dfd441d009 (patch)
treeee254a738ecfa26d59f2aac7994612b98ef00782 /django/db/models/fields/files.py
parentece18207cbb64dd89014e279ac636a6c9829828e (diff)
downloaddjango-2d42e23b6d8fd76f93a96b2310b2c9dfd441d009.tar.gz
Fixed #31941 -- Corrected FileField.deconstruct() with a callable storage.
Diffstat (limited to 'django/db/models/fields/files.py')
-rw-r--r--django/db/models/fields/files.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py
index e10a5bb6d9..db2450a738 100644
--- a/django/db/models/fields/files.py
+++ b/django/db/models/fields/files.py
@@ -229,6 +229,8 @@ class FileField(Field):
self.storage = storage or default_storage
if callable(self.storage):
+ # Hold a reference to the callable for deconstruct().
+ self._storage_callable = self.storage
self.storage = self.storage()
if not isinstance(self.storage, Storage):
raise TypeError(
@@ -279,7 +281,7 @@ class FileField(Field):
del kwargs["max_length"]
kwargs['upload_to'] = self.upload_to
if self.storage is not default_storage:
- kwargs['storage'] = self.storage
+ kwargs['storage'] = getattr(self, '_storage_callable', self.storage)
return name, path, args, kwargs
def get_internal_type(self):