我需要按功能制作滤镜产品。
所以,产品型号:
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 :(得分: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]
这将为您提供将所有名称与其现有值相关联的字典。