summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLuke Plant <L.Plant.98@cantab.net>2012-06-06 14:17:32 +0100
committerLuke Plant <L.Plant.98@cantab.net>2012-06-06 14:17:32 +0100
commit4fea46a030689d7ae774ee0217dbce28de5a1b29 (patch)
tree2fe531e3e2dfaae6c3302740c85d98716e3a54e0 /tests
parentf0664dc8ae541b21e3cf421725e7933a9b3a799e (diff)
Fixed #18309 - Prefetch related does not work for fkey to multitable inherited model
Thanks to milosu for the report, tests and initial patch.
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/prefetch_related/models.py3
-rw-r--r--tests/modeltests/prefetch_related/tests.py12
2 files changed, 14 insertions, 1 deletions
diff --git a/tests/modeltests/prefetch_related/models.py b/tests/modeltests/prefetch_related/models.py
index 1dc034fa6c..589f78c7d3 100644
--- a/tests/modeltests/prefetch_related/models.py
+++ b/tests/modeltests/prefetch_related/models.py
@@ -68,6 +68,9 @@ class Reader(models.Model):
class Meta:
ordering = ['id']
+class BookReview(models.Model):
+ book = models.ForeignKey(BookWithYear)
+ notes = models.TextField(null=True, blank=True)
## Models for default manager tests
diff --git a/tests/modeltests/prefetch_related/tests.py b/tests/modeltests/prefetch_related/tests.py
index 5cd42a75c0..b21244b6d9 100644
--- a/tests/modeltests/prefetch_related/tests.py
+++ b/tests/modeltests/prefetch_related/tests.py
@@ -7,7 +7,7 @@ from django.test.utils import override_settings
from .models import (Author, Book, Reader, Qualification, Teacher, Department,
TaggedItem, Bookmark, AuthorAddress, FavoriteAuthors, AuthorWithAge,
- BookWithYear, Person, House, Room, Employee, Comment)
+ BookWithYear, BookReview, Person, House, Room, Employee, Comment)
class PrefetchRelatedTests(TestCase):
@@ -335,6 +335,10 @@ class MultiTableInheritanceTest(TestCase):
self.authorAddress = AuthorAddress.objects.create(
author=self.author1, address='SomeStreet 1')
self.book2.aged_authors.add(self.author2, self.author3)
+ self.br1 = BookReview.objects.create(
+ book=self.book1, notes="review book1")
+ self.br2 = BookReview.objects.create(
+ book=self.book2, notes="review book2")
def test_foreignkey(self):
with self.assertNumQueries(2):
@@ -343,6 +347,12 @@ class MultiTableInheritanceTest(TestCase):
for obj in qs]
self.assertEqual(addresses, [[unicode(self.authorAddress)], [], []])
+ def test_foreignkey_to_inherited(self):
+ with self.assertNumQueries(2):
+ qs = BookReview.objects.prefetch_related('book')
+ titles = [obj.book.title for obj in qs]
+ self.assertEquals(titles, ["Poems", "More poems"])
+
def test_m2m_to_inheriting_model(self):
qs = AuthorWithAge.objects.prefetch_related('books_with_year')
with self.assertNumQueries(2):