产品目录:按参数筛选

时间:2011-10-02 16:28:17

标签: python django filter catalog

我需要按功能制作滤镜产品。

所以,产品型号:

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

我希望有人理解我,告诉我如何聪明地实现功能。感谢:)

1 个答案:

答案 0 :(得分:2)

首先列出给定产品的所有功能:

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

现在直接在Python中对您的功能进行分组。

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

这将为您提供将所有名称与其现有值相关联的字典。

相关问题