假设我有一个代表现实生活中物体的几个型号:“人”,“主席”,“室”整蛊Django的GenericRelation查询
我也有一个“集合”的模式,它代表了这些模型的一些记录集合。
每个模型都可以是多个集合的成员 - 因此,我还创建了一个“成员”模型,它表示一个对象是集合的成员。它的定义如下:
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,它可以过滤,排序等
编辑:
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>)
: 显然,这可以使用原始SQL来完成
但它可以使用Django查询语言来表示吗?
我只希望查询集举行一个模型...... 我能改写这个问题的记录: 我可以查询模型X的所有记录,所以,存在着具有记录X作为其内容的会员资格对象和其“集合”字段中的特定集合? – adamk 2010-06-28 06:33:34