diff options
Diffstat (limited to 'tests/prefetch_related')
| -rw-r--r-- | tests/prefetch_related/models.py | 9 | ||||
| -rw-r--r-- | tests/prefetch_related/tests.py | 9 |
2 files changed, 18 insertions, 0 deletions
diff --git a/tests/prefetch_related/models.py b/tests/prefetch_related/models.py index 2f37cde1c8..e12eabdfb2 100644 --- a/tests/prefetch_related/models.py +++ b/tests/prefetch_related/models.py @@ -216,6 +216,15 @@ class Comment(models.Model): ordering = ["id"] +class ArticleCustomUUID(models.Model): + class CustomUUIDField(models.UUIDField): + def get_prep_value(self, value): + return str(value) + + id = CustomUUIDField(primary_key=True, default=uuid.uuid4) + name = models.CharField(max_length=30) + + # Models for lookup ordering tests diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py index 72c499df7f..49acfdd7c8 100644 --- a/tests/prefetch_related/tests.py +++ b/tests/prefetch_related/tests.py @@ -16,6 +16,7 @@ from django.test.utils import CaptureQueriesContext from .models import ( Article, + ArticleCustomUUID, Author, Author2, AuthorAddress, @@ -1179,6 +1180,14 @@ class GenericRelationTests(TestCase): qs = Comment.objects.prefetch_related("content_object_uuid") self.assertEqual([c.content_object_uuid for c in qs], [article]) + def test_prefetch_GFK_uses_prepped_primary_key(self): + article = ArticleCustomUUID.objects.create(name="Blanche") + Comment.objects.create(comment="Enchantment", content_object_uuid=article) + obj = Comment.objects.prefetch_related("content_object_uuid").get( + comment="Enchantment" + ) + self.assertEqual(obj.content_object_uuid, article) + def test_prefetch_GFK_fk_pk(self): book = Book.objects.create(title="Poems") book_with_year = BookWithYear.objects.create(book=book, published_year=2019) |
