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
22207,"Add `related_query_name` to GenericRelation for query operations (filter, order_by, etc.) from related model",gabejackson,nobody,"`related_name` (reverse relation) should be added to GenericRelation to allow filtering from the related model.
The following patch provides this functionality including tests and documentation:
[https://github.com/gabejackson/django/compare/generic_rel_reverse?expand=1]
This is particularly useful for the following use cases:
{{{
class Product(model.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
class CarProduct(model.Model):
product = generic.GenericRelation('Product', related_name='cars')
# complex hierarchy of models accurately representing a car
# ...
class WineProduct(model.Model):
product = generic.GenericRelation('Product', related_name='wines')
# complex hierarchy of models accurately representing wine
# ...
# Get all Cars as Products based on some specific criteria of the car, and order them by another property
>>> Product.objects.filter(cars__wheels__num_spokes=4).order_by(cars__windows__transparency)
}}}
This should also fix #16920
This is also very useful for django-filter ([https://github.com/alex/django-filter]) allowing to filter over GFKs when GenericRelations are defined.",New feature,closed,contrib.contenttypes,master,Normal,fixed,"contenttypes, generic, genericrelation, reverse",,Unreviewed,1,0,0,0,0,0