diff options
| author | Simon Charette <charette.s@gmail.com> | 2013-08-20 01:52:32 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2013-10-03 13:20:05 -0400 |
| commit | fa2e1371cda1e72d82b4133ad0b49a18e43ba411 (patch) | |
| tree | 9d732e2ac0eb0b89cfc37ecccab41fe64eb31b33 /django | |
| parent | c4db7f075e269411287ff14b5518412250ba455f (diff) | |
Fixed #21216 -- Allow `OneToOneField` reverse accessor to be hidden.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/fields/related.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 6cd8d193f5..aa2a83bd97 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -960,6 +960,7 @@ class ManyToManyRel(object): class ForeignObject(RelatedField): requires_unique_target = True generate_reverse_relation = True + related_accessor_class = ForeignRelatedObjectsDescriptor def __init__(self, to, from_fields, to_fields, **kwargs): self.from_fields = from_fields @@ -1160,7 +1161,7 @@ class ForeignObject(RelatedField): # Internal FK's - i.e., those with a related name ending with '+' - # and swapped models don't get a related descriptor. if not self.rel.is_hidden() and not related.model._meta.swapped: - setattr(cls, related.get_accessor_name(), ForeignRelatedObjectsDescriptor(related)) + setattr(cls, related.get_accessor_name(), self.related_accessor_class(related)) if self.rel.limit_choices_to: cls._meta.related_fkey_lookups.append(self.rel.limit_choices_to) @@ -1334,6 +1335,7 @@ class OneToOneField(ForeignKey): always returns the object pointed to (since there will only ever be one), rather than returning a list. """ + related_accessor_class = SingleRelatedObjectDescriptor description = _("One-to-one relationship") def __init__(self, to, to_field=None, **kwargs): @@ -1346,10 +1348,6 @@ class OneToOneField(ForeignKey): del kwargs['unique'] return name, path, args, kwargs - def contribute_to_related_class(self, cls, related): - setattr(cls, related.get_accessor_name(), - SingleRelatedObjectDescriptor(related)) - def formfield(self, **kwargs): if self.rel.parent_link: return None |
