0

コードを使用してdjangoカートリッジのcart.htmlページに商品名{{ item.description }}印刷すると、商品名もサイズも印刷されます。たとえば、 aviesta は商品名で、サイズは 2.then と印刷されます(aviesta Size: 3)。 ..この名前とサイズを 2 つの異なる部分に分けるにはどうすればよいでしょうか.. 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 に答える