From 6b25d24a5755bb90c037e2afd485668bae8f179e Mon Sep 17 00:00:00 2001 From: Sultan Date: Mon, 15 Jun 2020 08:26:49 +0300 Subject: [PATCH] Fixed #31706 -- Removed unnecessary getattr() call in FileDescriptor.__get__(). refresh_from_db() loads fields values. --- django/db/models/fields/files.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py index b682db414c..0fffd6f3c1 100644 --- a/django/db/models/fields/files.py +++ b/django/db/models/fields/files.py @@ -173,11 +173,9 @@ class FileDescriptor: # The instance dict contains whatever was originally assigned # in __set__. - if self.field.name in instance.__dict__: - file = instance.__dict__[self.field.name] - else: + if self.field.name not in instance.__dict__: instance.refresh_from_db(fields=[self.field.name]) - file = getattr(instance, self.field.name) + file = instance.__dict__[self.field.name] # If this value is a string (instance.file = "path/to/file") or None # then we simply wrap it with the appropriate attribute class according