diff options
| author | valtron <valtron2000@gmail.com> | 2014-04-11 19:27:34 -0600 |
|---|---|---|
| committer | Loic Bistuer <loic.bistuer@gmail.com> | 2014-04-13 00:51:38 +0700 |
| commit | 6b3a8d27052bb5b242ab6c1c2fb0d6da5b49681d (patch) | |
| tree | 3114b316b16568833a48e55cc05025cb56ae8279 /tests | |
| parent | a6eda3a5fc524333b476deed5057ee9803d91108 (diff) | |
[1.7.x] Fixed #21760 -- prefetch_related used an inefficient query for reverse FK.
Regression introduced by commit 9777442. Refs #21410.
Backport of d3b71b976d from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/prefetch_related/tests.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py index 1bb64c95fb..765223b71d 100644 --- a/tests/prefetch_related/tests.py +++ b/tests/prefetch_related/tests.py @@ -4,8 +4,10 @@ from django.core.exceptions import ObjectDoesNotExist from django.contrib.contenttypes.models import ContentType from django.db import connection from django.db.models import Prefetch +from django.db.models.query import get_prefetcher from django.test import TestCase, override_settings from django.utils import six +from django.utils.encoding import force_text from .models import (Author, Book, Reader, Qualification, Teacher, Department, TaggedItem, Bookmark, AuthorAddress, FavoriteAuthors, AuthorWithAge, @@ -1055,3 +1057,19 @@ class Ticket21410Tests(TestCase): def test_bug(self): list(Author2.objects.prefetch_related('first_book', 'favorite_books')) + + +class Ticket21760Tests(TestCase): + + def setUp(self): + self.rooms = [] + for _ in range(3): + house = House.objects.create() + for _ in range(3): + self.rooms.append(Room.objects.create(house = house)) + + #@override_settings(DEBUG=True) + def test_bug(self): + prefetcher = get_prefetcher(self.rooms[0], 'house')[0] + queryset = prefetcher.get_prefetch_queryset(list(Room.objects.all()))[0] + self.assertNotIn(' JOIN ', force_text(queryset.query)) |
