Products catalogue: filter by parameters
我需要按功能制作过滤产品。
所以,产品型号:
1 2 3 4 | </p> class Product(models.Model): name = models.CharField(max_length=255, unique=True') |
以及功能模型:
1 2 3 4 5 6 7 8 9 10 11 12 | </p> 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 2 | product = Product.objects.get(pk=given_pk) features = product.feature_set.all().select_related() |
现在将您的特性直接分组到python中。
1 2 3 4 | features_dict = {} for feature in features: values = features_dict.get(feature.name.name, []) features_dict[feature.name.name] = values + [feature.value.value] |
号
这将使您能够将所有名称与它的现有值进行dict链接。