产品目录:按参数过滤
我需要按功能制作过滤器产品。
所以,产品型号:
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