summaryrefslogtreecommitdiff
path: root/django/db/models/fields/reverse_related.py
diff options
context:
space:
mode:
authorPaulo <commonzenpython@gmail.com>2016-06-04 16:10:37 -0700
committerTim Graham <timograham@gmail.com>2017-08-10 12:06:02 -0400
commitbfb746f983aa741afa3709794e70f1e0ab6040b5 (patch)
tree48b4a70b1d5119d75157dcae5283f881117fd0a4 /django/db/models/fields/reverse_related.py
parent22ff86ec52bb536ad9d1fa3ee0c9a3d5eb9925c1 (diff)
downloaddjango-bfb746f983aa741afa3709794e70f1e0ab6040b5.tar.gz
Refs #16043 -- Refactored internal fields value cache.
* Removed all hardcoded logic for _{fieldname}_cache. * Added an internal API for interacting with the field values cache. Thanks carljm and MarkusH for support.
Diffstat (limited to 'django/db/models/fields/reverse_related.py')
-rw-r--r--django/db/models/fields/reverse_related.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/django/db/models/fields/reverse_related.py b/django/db/models/fields/reverse_related.py
index ab8b3ffe58..1f42375566 100644
--- a/django/db/models/fields/reverse_related.py
+++ b/django/db/models/fields/reverse_related.py
@@ -13,9 +13,10 @@ from django.core import exceptions
from django.utils.functional import cached_property
from . import BLANK_CHOICE_DASH
+from .mixins import FieldCacheMixin
-class ForeignObjectRel:
+class ForeignObjectRel(FieldCacheMixin):
"""
Used by ForeignObject to store information about the relation.
@@ -162,12 +163,16 @@ class ForeignObjectRel:
return self.related_name
return opts.model_name + ('_set' if self.multiple else '')
- def get_cache_name(self):
- return "_%s_cache" % self.get_accessor_name()
-
def get_path_info(self):
return self.field.get_reverse_path_info()
+ def get_cache_name(self):
+ """
+ Return the name of the cache key to use for storing an instance of the
+ forward model on the reverse model.
+ """
+ return self.get_accessor_name()
+
class ManyToOneRel(ForeignObjectRel):
"""