mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
Fixed #35044 -- Avoided clearing reverse relations and private fields when accessing deferred fields.
Regression ina7b5ad8b19for reverse relations and possibly in123b1d3fcffor private fields.
This commit is contained in:
committed by
Mariusz Felisiak
parent
74f7fe3f3d
commit
73df8b54a2
@@ -740,12 +740,16 @@ class Model(AltersData, metaclass=ModelBase):
|
||||
|
||||
# Clear cached relations.
|
||||
for field in self._meta.related_objects:
|
||||
if field.is_cached(self):
|
||||
if (fields is None or field.name in fields) and field.is_cached(self):
|
||||
field.delete_cached_value(self)
|
||||
|
||||
# Clear cached private relations.
|
||||
for field in self._meta.private_fields:
|
||||
if field.is_relation and field.is_cached(self):
|
||||
if (
|
||||
(fields is None or field.name in fields)
|
||||
and field.is_relation
|
||||
and field.is_cached(self)
|
||||
):
|
||||
field.delete_cached_value(self)
|
||||
|
||||
self._state.db = db_instance._state.db
|
||||
|
||||
Reference in New Issue
Block a user