diff options
| author | Anssi Kääriäinen <akaariai@gmail.com> | 2013-10-01 11:07:41 +0300 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2013-10-01 20:29:23 +0300 |
| commit | bf13c75c0d94d606b8a077ff73bbd0440f05b396 (patch) | |
| tree | 89f6f47f99e06fab29384c22c9741c5e0ab8d124 /tests | |
| parent | 0d02c5429970804068520f0dc6f0ae9fb3e08b9c (diff) | |
Fixed #21203 -- resolve_columns fields misalignment
In queries using .defer() together with .select_related() the values
and fields arguments didn't align properly for resolve_columns().
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/queries/models.py | 9 | ||||
| -rw-r--r-- | tests/queries/tests.py | 10 |
2 files changed, 18 insertions, 1 deletions
diff --git a/tests/queries/models.py b/tests/queries/models.py index afd2493f1d..c0be285b12 100644 --- a/tests/queries/models.py +++ b/tests/queries/models.py @@ -535,3 +535,12 @@ class StaffUser(BaseUser): def __str__(self): return self.staff + +class Ticket21203Parent(models.Model): + parentid = models.AutoField(primary_key=True) + parent_bool = models.BooleanField(default=True) + created = models.DateTimeField(auto_now=True) + +class Ticket21203Child(models.Model): + childid = models.AutoField(primary_key=True) + parent = models.ForeignKey(Ticket21203Parent) diff --git a/tests/queries/tests.py b/tests/queries/tests.py index f0a5df587f..7bb7a150a2 100644 --- a/tests/queries/tests.py +++ b/tests/queries/tests.py @@ -26,7 +26,7 @@ from .models import ( ModelA, ModelB, ModelC, ModelD, Responsibility, Job, JobResponsibilities, BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book, MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser, - CategoryRelationship) + CategoryRelationship, Ticket21203Parent, Ticket21203Child) class BaseQuerysetTest(TestCase): def assertValueQuerysetEqual(self, qs, values): @@ -3071,3 +3071,11 @@ class Ticket20955Tests(TestCase): task_get.creator.staffuser.staff) self.assertEqual(task_select_related.owner.staffuser.staff, task_get.owner.staffuser.staff) + +class Ticket21203Tests(TestCase): + def test_ticket_21203(self): + p = Ticket21203Parent.objects.create(parent_bool=True) + c = Ticket21203Child.objects.create(parent=p) + qs = Ticket21203Child.objects.select_related('parent').defer('parent__created') + self.assertQuerysetEqual(qs, [c], lambda x: x) + self.assertIs(qs[0].parent.parent_bool, True) |
