diff options
Diffstat (limited to 'tests/prefetch_related/tests.py')
| -rw-r--r-- | tests/prefetch_related/tests.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py index 85de08b184..36d60ea1f4 100644 --- a/tests/prefetch_related/tests.py +++ b/tests/prefetch_related/tests.py @@ -81,6 +81,23 @@ class PrefetchRelatedTests(TestCase): with self.assertRaises(BookWithYear.DoesNotExist): book.bookwithyear + def test_onetoone_reverse_with_to_field_pk(self): + """ + A model (Bio) with a OneToOneField primary key (author) that references + a non-pk field (name) on the related model (Author) is prefetchable. + """ + Bio.objects.bulk_create([ + Bio(author=self.author1), + Bio(author=self.author2), + Bio(author=self.author3), + ]) + authors = Author.objects.filter( + name__in=[self.author1, self.author2, self.author3], + ).prefetch_related('bio') + with self.assertNumQueries(2): + for author in authors: + self.assertEqual(author.name, author.bio.author.name) + def test_survives_clone(self): with self.assertNumQueries(2): [list(b.first_time_authors.all()) |
