产品目录:按参数过滤

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

所以,产品型号:

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

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


从列出给定产品的所有功能开始:

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]

这将会让你把所有的名字链接到它现有的值。

链接地址: http://www.djcxy.com/p/38679.html

上一篇: Products catalogue: filter by parameters

下一篇: Django south migration error with unique field in postgresql database