2011-10-02 88 views
0

我需要按功能製作過濾器產品。產品目錄:按參數過濾

所以,產品型號:

class Product(models.Model): name = models.CharField(max_length=255, unique=True')

,並配備車型:

class Value(models.Model): value = models.CharField(max_length=50) class FeatureName(models.Model): name = models.CharField(max_length=50) class Feature(models.Model): name = models.ForeignKey(FeatureName) value = models.ForeignKey(Value) item = models.ForeignKey(Product)

要標記的過濾模板形式,我需要的特性和值的所有可能的名字這個特點。

像這樣:

顏色:紅,白,藍 尺寸:1,2,3

我希望有人理解我,告訴我該怎麼做巧妙實現的功能。謝謝:)

回答

0

開始列出所有特性對於給定的產品:直接在Python

product = Product.objects.get(pk=given_pk) 
features = product.feature_set.all().select_related() 

現在你組的功能。

features_dict = {} 
for feature in features: 
    values = features_dict.get(feature.name.name, []) 
    features_dict[feature.name.name] = values + [feature.value.value] 

這將給你字典鏈接所有名稱,它的現有值。編號:

+0

僅供參考:代碼來自我的頭頂,未經測試甚至解析。 –

+0

但是,我怎麼能列出這個字典Django模板? – user962963

+0

非常感謝,我做到了:) – user962963