From a56e45a2bfc75116451c4e24fce82aa1827edb11 Mon Sep 17 00:00:00 2001 From: Eugene Hatsko Date: Tue, 21 Jan 2020 10:12:25 +0300 Subject: [3.0.x] Fixed #31190 -- Fixed prefetch_related() crash for GenericForeignKey with custom ContentType foreign key. Regression in dffa3e1992562ba60512d96d1eb5859ffff2ceb5. Backport of 0b013564ef0609d95b1d263626f2e15bccda1a50 from master --- django/contrib/contenttypes/fields.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'django') 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, -- cgit v1.3