Loading tests/queries/models.py +4 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,10 @@ class OneToOneCategory(models.Model): def __str__(self): return "one2one " + self.new_name class CategoryRelationship(models.Model): first = models.ForeignKey(SimpleCategory, related_name='first_rel') second = models.ForeignKey(SimpleCategory, related_name='second_rel') class NullableName(models.Model): name = models.CharField(max_length=20, null=True) Loading tests/queries/tests.py +17 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ from collections import OrderedDict import datetime from operator import attrgetter import pickle import sys import unittest from django.conf import settings Loading @@ -26,7 +25,8 @@ from .models import ( OneToOneCategory, NullableName, ProxyCategory, SingleObject, RelatedObject, ModelA, ModelB, ModelC, ModelD, Responsibility, Job, JobResponsibilities, BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book, MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser) MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser, CategoryRelationship) class BaseQuerysetTest(TestCase): def assertValueQuerysetEqual(self, qs, values): Loading Loading @@ -2452,6 +2452,21 @@ class ExcludeTest17600(TestCase): Order.objects.exclude(~Q(items__status=1)).distinct(), ['<Order: 1>']) class Exclude15786(TestCase): """Regression test for #15786""" def test_ticket15786(self): c1 = SimpleCategory.objects.create(name='c1') c2 = SimpleCategory.objects.create(name='c2') o2o1 = OneToOneCategory.objects.create(category=c1) o2o2 = OneToOneCategory.objects.create(category=c2) rel = CategoryRelationship.objects.create(first=c1, second=c2) self.assertEqual( CategoryRelationship.objects.exclude( first__onetoonecategory=F('second__onetoonecategory') ).get(), rel ) class NullInExcludeTest(TestCase): def setUp(self): NullableName.objects.create(name='i1') Loading Loading
tests/queries/models.py +4 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,10 @@ class OneToOneCategory(models.Model): def __str__(self): return "one2one " + self.new_name class CategoryRelationship(models.Model): first = models.ForeignKey(SimpleCategory, related_name='first_rel') second = models.ForeignKey(SimpleCategory, related_name='second_rel') class NullableName(models.Model): name = models.CharField(max_length=20, null=True) Loading
tests/queries/tests.py +17 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ from collections import OrderedDict import datetime from operator import attrgetter import pickle import sys import unittest from django.conf import settings Loading @@ -26,7 +25,8 @@ from .models import ( OneToOneCategory, NullableName, ProxyCategory, SingleObject, RelatedObject, ModelA, ModelB, ModelC, ModelD, Responsibility, Job, JobResponsibilities, BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book, MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser) MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser, CategoryRelationship) class BaseQuerysetTest(TestCase): def assertValueQuerysetEqual(self, qs, values): Loading Loading @@ -2452,6 +2452,21 @@ class ExcludeTest17600(TestCase): Order.objects.exclude(~Q(items__status=1)).distinct(), ['<Order: 1>']) class Exclude15786(TestCase): """Regression test for #15786""" def test_ticket15786(self): c1 = SimpleCategory.objects.create(name='c1') c2 = SimpleCategory.objects.create(name='c2') o2o1 = OneToOneCategory.objects.create(category=c1) o2o2 = OneToOneCategory.objects.create(category=c2) rel = CategoryRelationship.objects.create(first=c1, second=c2) self.assertEqual( CategoryRelationship.objects.exclude( first__onetoonecategory=F('second__onetoonecategory') ).get(), rel ) class NullInExcludeTest(TestCase): def setUp(self): NullableName.objects.create(name='i1') Loading