﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28418	Creating join paths to fields that are GenericRelations to proxy models fails with an AttributeError	Rachel Tobin	nobody	"This appears to be a regression introduced by https://code.djangoproject.com/ticket/12885. When attempting to build joins for a GenericRelation field that points to a proxy model, an AttributeError is caused via {{{contrib/contenttypes/fields.py:375}}} , when trying to get the ancestor of the proxy model's parent. Since the proxy model's parent does not have an ancestor, None is returned and {{{contrib/contenttypes/fields.py:377}}} raises an AttributeError, given that `field` is None.

As an example:

{{{
class GenericConcreteModel(models.Model):
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()


class GenericProxyModel(GenericConcreteModel):
    class Meta:
        proxy = True


class GenericRelationProxyModel(models.Model):
    proxy_model = GenericRelation('GenericProxyModel')
}}}

Where the query
{{{
GenericRelationProxyModel.objects.filter(proxy_model__content_type=ContentType.objects.get(id=1))
}}}
will cause an attribute error.

I have made a patch and submitted the PR https://github.com/django/django/pull/8792 to fix this issue."	Bug	closed	contrib.contenttypes	dev	Normal	fixed			Accepted	1	0	0	0	0	0
