mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #20874 -- bump_prefix() in nested subqueries
Also made some cleanup to build_filter() code by introducing submethods solve_lookup_type() and prepare_lookup_value().
This commit is contained in:
@@ -132,7 +132,6 @@ class MultiColumnFKTests(TestCase):
|
||||
],
|
||||
attrgetter('person_id')
|
||||
)
|
||||
|
||||
self.assertQuerysetEqual(
|
||||
Membership.objects.filter(person__in=Person.objects.filter(name='Jim')), [
|
||||
self.jim.id,
|
||||
@@ -140,6 +139,24 @@ class MultiColumnFKTests(TestCase):
|
||||
attrgetter('person_id')
|
||||
)
|
||||
|
||||
def test_double_nested_query(self):
|
||||
m1 = Membership.objects.create(membership_country_id=self.usa.id, person_id=self.bob.id,
|
||||
group_id=self.cia.id)
|
||||
m2 = Membership.objects.create(membership_country_id=self.usa.id, person_id=self.jim.id,
|
||||
group_id=self.cia.id)
|
||||
Friendship.objects.create(from_friend_country_id=self.usa.id, from_friend_id=self.bob.id,
|
||||
to_friend_country_id=self.usa.id, to_friend_id=self.jim.id)
|
||||
self.assertQuerysetEqual(Membership.objects.filter(
|
||||
person__in=Person.objects.filter(
|
||||
from_friend__in=Friendship.objects.filter(
|
||||
to_friend__in=Person.objects.all()))),
|
||||
[m1], lambda x: x)
|
||||
self.assertQuerysetEqual(Membership.objects.exclude(
|
||||
person__in=Person.objects.filter(
|
||||
from_friend__in=Friendship.objects.filter(
|
||||
to_friend__in=Person.objects.all()))),
|
||||
[m2], lambda x: x)
|
||||
|
||||
def test_select_related_foreignkey_forward_works(self):
|
||||
Membership.objects.create(membership_country=self.usa, person=self.bob, group=self.cia)
|
||||
Membership.objects.create(membership_country=self.usa, person=self.jim, group=self.democrat)
|
||||
|
||||
Reference in New Issue
Block a user