假設我有一個代表現實生活中物體的幾個型號:「人」,「主席」,「室」整蠱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