mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[1.7.x] Fixed #22429 -- Incorrect SQL when using ~Q and F
Backport of 5e1f4656b9 from master
			
			
This commit is contained in:
		| @@ -27,7 +27,7 @@ from .models import ( | ||||
|     BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book, | ||||
|     MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser, | ||||
|     CategoryRelationship, Ticket21203Parent, Ticket21203Child, Person, | ||||
|     Company, Employment, CustomPk, CustomPkTag) | ||||
|     Company, Employment, CustomPk, CustomPkTag, Classroom, School, Student) | ||||
|  | ||||
|  | ||||
| class BaseQuerysetTest(TestCase): | ||||
| @@ -3344,3 +3344,18 @@ class ReverseM2MCustomPkTests(TestCase): | ||||
|         self.assertQuerysetEqual( | ||||
|             CustomPkTag.objects.filter(custom_pk=cp1), [cpt1], | ||||
|             lambda x: x) | ||||
|  | ||||
|  | ||||
| class Ticket22429Tests(TestCase): | ||||
|     def test_ticket_22429(self): | ||||
|         sc1 = School.objects.create() | ||||
|         st1 = Student.objects.create(school=sc1) | ||||
|  | ||||
|         sc2 = School.objects.create() | ||||
|         st2 = Student.objects.create(school=sc2) | ||||
|  | ||||
|         cr = Classroom.objects.create(school=sc1) | ||||
|         cr.students.add(st1) | ||||
|  | ||||
|         queryset = Student.objects.filter(~Q(classroom__school=F('school'))) | ||||
|         self.assertQuerysetEqual(queryset, [st2], lambda x: x) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user