summaryrefslogtreecommitdiff
path: root/django/db/models/fields/related.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/fields/related.py')
-rw-r--r--django/db/models/fields/related.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 8add38d6b0..44e053847a 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -21,8 +21,9 @@ from django.utils.version import get_docs_version
from . import Field
from .related_descriptors import (
- ForwardManyToOneDescriptor, ManyToManyDescriptor,
- ReverseManyToOneDescriptor, ReverseOneToOneDescriptor,
+ ForwardManyToOneDescriptor, ForwardOneToOneDescriptor,
+ ManyToManyDescriptor, ReverseManyToOneDescriptor,
+ ReverseOneToOneDescriptor,
)
from .related_lookups import (
RelatedExact, RelatedGreaterThan, RelatedGreaterThanOrEqual, RelatedIn,
@@ -437,6 +438,7 @@ class ForeignObject(RelatedField):
requires_unique_target = True
related_accessor_class = ReverseManyToOneDescriptor
+ forward_related_accessor_class = ForwardManyToOneDescriptor
rel_class = ForeignObjectRel
def __init__(self, to, on_delete, from_fields, to_fields, rel=None, related_name=None,
@@ -698,7 +700,7 @@ class ForeignObject(RelatedField):
def contribute_to_class(self, cls, name, private_only=False, **kwargs):
super(ForeignObject, self).contribute_to_class(cls, name, private_only=private_only, **kwargs)
- setattr(cls, self.name, ForwardManyToOneDescriptor(self))
+ setattr(cls, self.name, self.forward_related_accessor_class(self))
def contribute_to_related_class(self, cls, related):
# Internal FK's - i.e., those with a related name ending with '+' -
@@ -969,6 +971,7 @@ class OneToOneField(ForeignKey):
one_to_one = True
related_accessor_class = ReverseOneToOneDescriptor
+ forward_related_accessor_class = ForwardOneToOneDescriptor
rel_class = OneToOneRel
description = _("One-to-one relationship")