mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #21410 -- prefetch_related() for ForeignKeys with related_name='+'
Regression introduced by commit 9777442.
Thanks to trac username troygrosfield for the report and test case.
This commit is contained in:
committed by
Anssi Kääriäinen
parent
0048ed77c7
commit
cb83448891
@@ -10,7 +10,7 @@ from django.utils import six
|
||||
from .models import (Author, Book, Reader, Qualification, Teacher, Department,
|
||||
TaggedItem, Bookmark, AuthorAddress, FavoriteAuthors, AuthorWithAge,
|
||||
BookWithYear, BookReview, Person, House, Room, Employee, Comment,
|
||||
LessonEntry, WordEntry)
|
||||
LessonEntry, WordEntry, Author2)
|
||||
|
||||
|
||||
class PrefetchRelatedTests(TestCase):
|
||||
@@ -973,3 +973,29 @@ class Ticket19607Tests(TestCase):
|
||||
|
||||
def test_bug(self):
|
||||
list(WordEntry.objects.prefetch_related('lesson_entry', 'lesson_entry__wordentry_set'))
|
||||
|
||||
|
||||
class Ticket21410Tests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.book1 = Book.objects.create(title="Poems")
|
||||
self.book2 = Book.objects.create(title="Jane Eyre")
|
||||
self.book3 = Book.objects.create(title="Wuthering Heights")
|
||||
self.book4 = Book.objects.create(title="Sense and Sensibility")
|
||||
|
||||
self.author1 = Author2.objects.create(name="Charlotte",
|
||||
first_book=self.book1)
|
||||
self.author2 = Author2.objects.create(name="Anne",
|
||||
first_book=self.book1)
|
||||
self.author3 = Author2.objects.create(name="Emily",
|
||||
first_book=self.book1)
|
||||
self.author4 = Author2.objects.create(name="Jane",
|
||||
first_book=self.book4)
|
||||
|
||||
self.author1.favorite_books.add(self.book1, self.book2, self.book3)
|
||||
self.author2.favorite_books.add(self.book1)
|
||||
self.author3.favorite_books.add(self.book2)
|
||||
self.author4.favorite_books.add(self.book3)
|
||||
|
||||
def test_bug(self):
|
||||
list(Author2.objects.prefetch_related('first_book', 'favorite_books'))
|
||||
|
||||
Reference in New Issue
Block a user