diff options
| author | Simon Charette <charette.s@gmail.com> | 2016-02-22 16:05:47 -0500 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2016-02-29 22:13:54 -0500 |
| commit | 48cf7516409c668bf11e24e6b7cd8eaea13ae3b8 (patch) | |
| tree | 5b4c48da5e86dcf2cf6412fde0ce67dff01147fa /django | |
| parent | e9234569f69e0afcc97b3b1ff5293bad1678a076 (diff) | |
[1.9.x] Fixed #26186 -- Documented how app relative relationships of abstract models behave.
This partially reverts commit bc7d201bdbaeac14a49f51a9ef292d6312b4c45e.
Thanks Tim for the review.
Refs #25858.
Backport of 0223e213dd690b6b6e0669f836a20efb10998c83 from master
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/fields/related.py | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 31434864cd..5d9b881c16 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -40,7 +40,7 @@ from .reverse_related import ( RECURSIVE_RELATIONSHIP_CONSTANT = 'self' -def resolve_relation(scope_model, relation, resolve_recursive_relationship=True): +def resolve_relation(scope_model, relation): """ Transform relation into a model or fully-qualified model string of the form "app_label.ModelName", relative to scope_model. @@ -55,11 +55,12 @@ def resolve_relation(scope_model, relation, resolve_recursive_relationship=True) """ # Check for recursive relations if relation == RECURSIVE_RELATIONSHIP_CONSTANT: - if resolve_recursive_relationship: - relation = scope_model + relation = scope_model + # Look for an "app.Model" relation - elif isinstance(relation, six.string_types) and '.' not in relation: - relation = "%s.%s" % (scope_model._meta.app_label, relation) + if isinstance(relation, six.string_types): + if "." not in relation: + relation = "%s.%s" % (scope_model._meta.app_label, relation) return relation @@ -303,11 +304,6 @@ class RelatedField(Field): field.remote_field.model = related field.do_related_class(related, model) lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self) - else: - # Bind a lazy reference to the app in which the model is defined. - self.remote_field.model = resolve_relation( - cls, self.remote_field.model, resolve_recursive_relationship=False - ) def get_forward_related_filter(self, obj): """ @@ -1584,11 +1580,6 @@ class ManyToManyField(RelatedField): lazy_related_operation(resolve_through_model, cls, self.remote_field.through, field=self) elif not cls._meta.swapped: self.remote_field.through = create_many_to_many_intermediary_model(self, cls) - else: - # Bind a lazy reference to the app in which the model is defined. - self.remote_field.through = resolve_relation( - cls, self.remote_field.through, resolve_recursive_relationship=False - ) # Add the descriptor for the m2m relation. setattr(cls, self.name, ManyToManyDescriptor(self.remote_field, reverse=False)) |
