0

当我使用代码在django 墨盒的cart.html页面上{{ item.description }}打印项目名称时,它还会打印项目名称大小。例如aviesta 是项目名称,大小是 2。然后它打印(aviesta Size: 3)。 ..我怎样才能将这个名称和尺寸分成两个不同的部分.. 1. 物品名称 2. 物品尺寸

4

1 回答 1

1

我认为它需要更改模型,因为将产品添加到购物车时,名称和选项会保存到描述中:

class Cart(models.Model):
    ...
    item.description = unicode(variation)

class ProductVariation(Priced):
    ...
    def __unicode__(self):
        """
        Display the option names and values for the variation.
        """
        options = []
        for field in self.option_fields():
            if getattr(self, field.name) is not None:
                options.append("%s: %s" % (unicode(field.verbose_name),
                                           getattr(self, field.name)))
        return ("%s %s" % (unicode(self.product), ", ".join(options))).strip()

升级版:

您可以将字段添加到 SelectedProduct 类:

options = CharField(_("Options"), max_length=200)

向 ProductVariation 类添加方法:

def options_text(self):
    options = []
    for field in self.option_fields():
        if getattr(self, field.name) is not None:
            options.append("%s: %s" % (unicode(field.verbose_name),
                                       getattr(self, field.name)))
    return ", ".join(options).strip() 

def __unicode__(self):
    """
    Display the option names and values for the variation.
    """        
    return ("%s %s" % (unicode(self.product), self.options_text())).strip()

更改 Cart 类中的 add_item 方法:

item.description = unicode(variation.product)
item.options = variation.options_text()
于 2012-12-17T11:43:26.590 回答