summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2020-01-17 12:44:37 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-01-31 14:07:52 +0100
commitc1b24718e05ea474955777d7bc4d9d5634560cd5 (patch)
treeadd1d5b8e84663ed348c27c8df18b6d77dd14ca2
parente7d62e97eb40ab441778d1dff9885b5d892d0f80 (diff)
Cached ForeignObject.(local/foreign/reverse)_related_fields properties.
-rw-r--r--django/db/models/fields/related.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 88bc0b5c15..f269d9e17f 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -616,21 +616,19 @@ class ForeignObject(RelatedField):
related_fields.append((from_field, to_field))
return related_fields
- @property
+ @cached_property
def related_fields(self):
- if not hasattr(self, '_related_fields'):
- self._related_fields = self.resolve_related_fields()
- return self._related_fields
+ return self.resolve_related_fields()
- @property
+ @cached_property
def reverse_related_fields(self):
return [(rhs_field, lhs_field) for lhs_field, rhs_field in self.related_fields]
- @property
+ @cached_property
def local_related_fields(self):
return tuple(lhs_field for lhs_field, rhs_field in self.related_fields)
- @property
+ @cached_property
def foreign_related_fields(self):
return tuple(rhs_field for lhs_field, rhs_field in self.related_fields if rhs_field)