2011-10-02 127 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