Предположим, у меня есть несколько моделей, представляющих объекты из реальной жизни: "Человек", "Стул", "Комната"
У меня также есть модель "Collection", которая представляет некоторую коллекцию записей этих моделей.
Каждая модель может быть членом нескольких коллекций, поэтому я также создал модель "Membership", которая представляет объект, являющийся членом коллекции. Он определяется следующим образом:
class Membership(models.Model):
   content_type   = models.ForeignKey(ContentType)
   object_id      = models.PositiveIntegerField()
   content_object = generic.GenericForeignKey('content_type', 'object_id')
   collection     = models.ForeignKey('Collection', related_name="members")
Я хочу иметь возможность создать QuerySet, который для данной коллекции представляет все ее члены данной модели. Я знаю, что могу сделать это программно, но мне это нужно в QuerySet, который можно фильтровать, упорядочивать и т. д.
ИЗМЕНИТЬ:
Очевидно, это можно сделать с помощью необработанного SQL:
   SELECT * FROM 
       ( modelx INNER JOIN membership ON modelx.id = membership.object_id) 
   WHERE 
       ( membership.collection_id=<my-collection-id> AND    
         membership.content_type_id=<modelx-type-id> )
Но можно ли его представить с помощью языка запросов Django?
 
                                                                     
                                                                    