我正在建立一個電子商務網站。 我有一個持有共同的信息到所有產品類型產品型號:有FK到產品和保持特定的產品類型信息在Django自定義查詢
class Product(models.Model):
name=models.CharField()
description=models.CharField()
categories = models.ManyToManyField(Category)
然後,我有SimpleProduct和BundleProduct。 BundleProduct對其他產品有一個m2m字段。
class SimpleProduct(Product):
some_field=models.CharField()
class BundleProduct(Product):
products = models.ManyToManyField(Product)
當顯示我正在對產品型號 然後每個產品的另一個查詢一個查詢,以獲得額外的信息目錄。 這涉及大量的查詢。
我可以通過在simpleproduct和bundleproduct字段上使用select_related來改進它。 我可以進一步改善它通過使用類別的m2m字段select_reverse應用程序。
這是一個很大的改進,但有更多的需求查詢,因爲BundleProduct有幾個產品也可能與其他產品(可配置產品)有關係。
是否有一種方法可以對產品進行單個查詢,以檢索m2m類別,one2one SimpleProduct和BundleProduct以及BundleProduct的產品?
這個自定義查詢看起來像一個包含所有管理器和屬性的django查詢集嗎?
感謝
額外的和原始的似乎都向對象添加額外的字段。 是否有可能對深層嵌套對象使用原始查詢? 對我而言 product.bundleproduct.products.all()[0] .simpleproduct.categories.all()[2]? – pablo 2010-07-02 10:48:28