summaryrefslogtreecommitdiff
path: root/tests/prefetch_related
diff options
context:
space:
mode:
Diffstat (limited to 'tests/prefetch_related')
-rw-r--r--tests/prefetch_related/models.py9
-rw-r--r--tests/prefetch_related/tests.py9
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)