summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorEugene Hatsko <e.hacko.nicecode@gmail.com>2020-01-21 10:12:25 +0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-01-22 08:25:23 +0100
commita56e45a2bfc75116451c4e24fce82aa1827edb11 (patch)
tree5add1aee6ca1041b7aac2d7aefc4568e7a12f14d /django
parentd7e4d6463c2fda11214e002ee6b3189f7b882f15 (diff)
[3.0.x] Fixed #31190 -- Fixed prefetch_related() crash for GenericForeignKey with custom ContentType foreign key.
Regression in dffa3e1992562ba60512d96d1eb5859ffff2ceb5. Backport of 0b013564ef0609d95b1d263626f2e15bccda1a50 from master
Diffstat (limited to 'django')
-rw-r--r--django/contrib/contenttypes/fields.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/django/contrib/contenttypes/fields.py b/django/contrib/contenttypes/fields.py
index 4015f16c6b..163e3a9c50 100644
--- a/django/contrib/contenttypes/fields.py
+++ b/django/contrib/contenttypes/fields.py
@@ -583,11 +583,12 @@ def create_generic_related_manager(superclass, rel):
# We (possibly) need to convert object IDs to the type of the
# instances' PK in order to match up instances:
object_id_converter = instances[0]._meta.pk.to_python
+ content_type_id_field_name = '%s_id' % self.content_type_field_name
return (
queryset.filter(query),
lambda relobj: (
object_id_converter(getattr(relobj, self.object_id_field_name)),
- relobj.content_type_id
+ getattr(relobj, content_type_id_field_name),
),
lambda obj: (obj.pk, self.get_content_type(obj).pk),
False,