diff --git a/django/contrib/contenttypes/fields.py b/django/contrib/contenttypes/fields.py
index 35fcd0d908..054780b8de 100644
--- a/django/contrib/contenttypes/fields.py
+++ b/django/contrib/contenttypes/fields.py
@@ -216,7 +216,7 @@ class GenericForeignKey(FieldCacheMixin):
 
         return (
             ret_val,
-            lambda obj: (obj.pk, obj.__class__),
+            lambda obj: (obj._meta.pk.get_prep_value(obj.pk), obj.__class__),
             gfk_key,
             True,
             self.name,
