1
0
mirror of https://github.com/django/django.git synced 2025-10-23 21:59:11 +00:00

[1.11.x] Fixed #28096 -- Allowed prefetch calls with ModelIterable subclasses

Regression in 7ec330eeb9.
Thanks Tim Graham for the review.
Backport of 43b4a1618e from master.
This commit is contained in:
Claude Paroz
2017-04-19 10:24:22 +02:00
parent cf1e682c8c
commit 61e883c7c2
4 changed files with 21 additions and 3 deletions

View File

@@ -15,8 +15,8 @@ from django.utils.encoding import force_text
from .models import (
Author, Author2, AuthorAddress, AuthorWithAge, Bio, Book, Bookmark,
BookReview, BookWithYear, Comment, Department, Employee, FavoriteAuthors,
House, LessonEntry, Person, Qualification, Reader, Room, TaggedItem,
Teacher, WordEntry,
House, LessonEntry, ModelIterableSubclass, Person, Qualification, Reader,
Room, TaggedItem, Teacher, WordEntry,
)
@@ -738,6 +738,9 @@ class CustomPrefetchTests(TestCase):
def test_values_queryset(self):
with self.assertRaisesMessage(ValueError, 'Prefetch querysets cannot use values().'):
Prefetch('houses', House.objects.values('pk'))
# That error doesn't affect managers with custom ModelIterable subclasses
self.assertIs(Teacher.objects_custom.all()._iterable_class, ModelIterableSubclass)
Prefetch('teachers', Teacher.objects_custom.all())
def test_to_attr_doesnt_cache_through_attr_as_list(self):
house = House.objects.prefetch_related(