diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 579e289c72..fed4353a3a 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -724,7 +724,7 @@ class SQLCompiler(object): _, _, _, joins, _ = self.query.setup_joins([related_field_name], opts, root_alias) alias = joins[-1] - from_parent = issubclass(model, opts.model) and model is not opts.model + from_parent = issubclass(model, opts.model) klass_info = { 'model': model, 'field': f, diff --git a/tests/select_related_onetoone/models.py b/tests/select_related_onetoone/models.py index 773ae65125..9af1b3f31b 100644 --- a/tests/select_related_onetoone/models.py +++ b/tests/select_related_onetoone/models.py @@ -102,12 +102,3 @@ class Child3(Child2): class Child4(Child1): value4 = models.IntegerField() - - -class LinkedList(models.Model): - name = models.CharField(max_length=50) - previous_item = models.OneToOneField( - 'self', models.CASCADE, - related_name="next_item", blank=True, - null=True, - ) diff --git a/tests/select_related_onetoone/tests.py b/tests/select_related_onetoone/tests.py index 81b6d0e8f4..2cb17a5ba9 100644 --- a/tests/select_related_onetoone/tests.py +++ b/tests/select_related_onetoone/tests.py @@ -6,9 +6,8 @@ from django.core.exceptions import FieldError from django.test import TestCase from .models import ( - AdvancedUserStat, Child1, Child2, Child3, Child4, Image, LinkedList, - Parent1, Parent2, Product, StatDetails, User, UserProfile, UserStat, - UserStatResult, + AdvancedUserStat, Child1, Child2, Child3, Child4, Image, Parent1, Parent2, + Product, StatDetails, User, UserProfile, UserStat, UserStatResult, ) @@ -213,13 +212,6 @@ class ReverseSelectRelatedTestCase(TestCase): with self.assertNumQueries(1): self.assertEqual(p.child1.child4.name1, 'n1') - def test_self_relation(self): - item1 = LinkedList.objects.create(name='item1') - LinkedList.objects.create(name='item2', previous_item=item1) - with self.assertNumQueries(1): - item1_db = LinkedList.objects.select_related('next_item').get(name='item1') - self.assertEqual(item1_db.next_item.name, 'item2') - class ReverseSelectRelatedValidationTests(TestCase): """