diff options
| author | Simon Charette <charette.s@gmail.com> | 2017-04-22 17:04:02 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2017-04-23 01:16:04 -0400 |
| commit | 0ad16934940fdbf0984f5255c7e5fff085593737 (patch) | |
| tree | 04fbbd51dce93e68f4d9fb63cabbf63ca9d30c2a /tests | |
| parent | 395df007f4151390c614866d99827bbed1795a43 (diff) | |
[1.11.x] Fixed #28101 -- Fixed a regression with nested __in subquery lookups and to_field.
Thanks Kristian Klette for the report and Tim for the help.
Backport of 8ef35468b660e1c25af67a8299202b8bc108679f from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/queries/models.py | 6 | ||||
| -rw-r--r-- | tests/queries/tests.py | 21 |
2 files changed, 22 insertions, 5 deletions
diff --git a/tests/queries/models.py b/tests/queries/models.py index 67a28e950e..ab03b9c248 100644 --- a/tests/queries/models.py +++ b/tests/queries/models.py @@ -78,7 +78,7 @@ class Annotation(models.Model): @python_2_unicode_compatible class ExtraInfo(models.Model): info = models.CharField(max_length=100) - note = models.ForeignKey(Note, models.CASCADE) + note = models.ForeignKey(Note, models.CASCADE, null=True) value = models.IntegerField(null=True) class Meta: @@ -126,6 +126,10 @@ class Report(models.Model): return self.name +class ReportComment(models.Model): + report = models.ForeignKey(Report, models.CASCADE) + + @python_2_unicode_compatible class Ranking(models.Model): rank = models.IntegerField() diff --git a/tests/queries/tests.py b/tests/queries/tests.py index b0999be3f8..6633985f81 100644 --- a/tests/queries/tests.py +++ b/tests/queries/tests.py @@ -26,10 +26,11 @@ from .models import ( Note, NullableName, Number, ObjectA, ObjectB, ObjectC, OneToOneCategory, Order, OrderItem, Page, Paragraph, Person, Plaything, PointerA, Program, ProxyCategory, ProxyObjectA, ProxyObjectB, Ranking, Related, - RelatedIndividual, RelatedObject, Report, ReservedName, Responsibility, - School, SharedConnection, SimpleCategory, SingleObject, SpecialCategory, - Staff, StaffUser, Student, Tag, Task, Ticket21203Child, Ticket21203Parent, - Ticket23605A, Ticket23605B, Ticket23605C, TvChef, Valid, X, + RelatedIndividual, RelatedObject, Report, ReportComment, ReservedName, + Responsibility, School, SharedConnection, SimpleCategory, SingleObject, + SpecialCategory, Staff, StaffUser, Student, Tag, Task, Ticket21203Child, + Ticket21203Parent, Ticket23605A, Ticket23605B, Ticket23605C, TvChef, Valid, + X, ) @@ -2420,6 +2421,18 @@ class ToFieldTests(TestCase): {apple} ) + def test_nested_in_subquery(self): + extra = ExtraInfo.objects.create() + author = Author.objects.create(num=42, extra=extra) + report = Report.objects.create(creator=author) + comment = ReportComment.objects.create(report=report) + comments = ReportComment.objects.filter( + report__in=Report.objects.filter( + creator__in=extra.author_set.all(), + ), + ) + self.assertSequenceEqual(comments, [comment]) + def test_reverse_in(self): apple = Food.objects.create(name="apple") pear = Food.objects.create(name="pear") |
