mirror of
https://github.com/django/django.git
synced 2025-10-25 22:56:12 +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