diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/base.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py index a20e88749f..d948cd2a1c 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -726,12 +726,13 @@ class Model(AltersData, metaclass=ModelBase): if fields is not None: db_instance_qs = db_instance_qs.only(*fields) elif deferred_fields: - fields = { - f.attname - for f in self._meta.concrete_fields - if f.attname not in deferred_fields - } - db_instance_qs = db_instance_qs.only(*fields) + db_instance_qs = db_instance_qs.only( + *{ + f.attname + for f in self._meta.concrete_fields + if f.attname not in deferred_fields + } + ) db_instance = db_instance_qs.get() non_loaded_fields = db_instance.get_deferred_fields() @@ -748,9 +749,9 @@ class Model(AltersData, metaclass=ModelBase): field.delete_cached_value(self) # Clear cached relations. - for field in self._meta.related_objects: - if (fields is None or field.name in fields) and field.is_cached(self): - field.delete_cached_value(self) + for rel in self._meta.related_objects: + if (fields is None or rel.name in fields) and rel.is_cached(self): + rel.delete_cached_value(self) # Clear cached private relations. for field in self._meta.private_fields: |
