こんにちは私はProductモデル、ProductColor、Product Sizeモデルを持っています。私は、製品をサイズと色で適切にリンクしたいと思います。たとえば、私のユーザーがSmall size for A prouct(Tshrit)を選択すると、その小さなサイズで利用可能な色のみが表示されます。Djangoで1つの製品で2つのバリエーションを選択したい
class Product(models.Model):
title = models.CharField(max_length=120)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(decimal_places=2,max_digits=1000)
active =models.BooleanField(default=True)
weight = models.CharField(max_length=100, null=True, blank=True)
class ProductColor(models.Model):
product = models.ForeignKey(Product)
color = models.CharField(max_length=120)
active = models.BooleanField(default=True)
def __str__(self):
return self.color
def get_absolute_url(self):
return self.product.get_absolute_url()
製品サイズ
CHOOSE_SIZE = (
('Extra Small', 'XS'),
('Small', 'S'),
('Medium', 'M'),
('Large', 'L'),
('Extra Large', 'XL'),
('Double Large', 'XXL'),
('Triple Large', 'XXXL'),
)
サイズを選択するために、製品のバリエーション
class ProductSize(models.Model):
product = models.ForeignKey(Product)
size = models.CharField(max_length=120, choices=CHOOSE_SIZE)
price = models.DecimalField(decimal_places=2, max_digits=20)
sale_price = models.DecimalField(decimal_places=2, max_digits=20, null=True, blank=True)
active = models.BooleanField(default=True)
def __str__(self):
return self.size
def get_absolute_url(self):
return self.product.get_absolute_url()
製品の詳細HTMLページ
<div class="col-sm-4">
<h3>{{ object.price }}</h3>
<!-- <select class="form-control">
{% for vari_obj in object.productsize_set.all %}
<option value="{{ vari_obj.id }}">{{ vari_obj }}
</option>
{% endfor %}
</select> -->
{% if object.variation_set.count > 1 %}
<h5>Size</h5>
<select class="form-control">
{% for vari_obj in object.productsize_set.all %}
<option value="{{ vari_obj.id }}">{{ vari_obj }}
</option>
{% endfor %}
</select>
{% endif %}
<br/>
<h5>Available Color</h5>
<select class="form-control">
{% for color_obj in object.productcolor_set.all %}
<option value="{{ color_obj.id }}">{{ color_obj }}
</option>
{% endfor %}
</select>
<a href="#">Add to cart</a>
<br/>
<hr/>
</div><!--end of col-sm-4!-->
は、私が持っているので、現在の状況に問題があるサンキュー製品サイズがリンクされていない私は赤シャツラージ、赤シャツSmallとBlueのカラーシャツミディアムを同じ製品に追加すると、適切に色を塗ります。 avaialbleカラーサイズのための私のプロダクトdetialページDropdwonに従ってくださいです:赤は、赤、青
何をお探しですか?何を試しましたか?あなたは何を期待しましたか? – Gaetan
私は衣料品店のウェブサイトを作っていますが、商品のサイズと色を選択するオプションがあり、商品のサイズに使用可能な色のみを表示したいと考えています。 私は上記の方法を試して、Ididnotはサイズとカラーモデルの間にリンクがないことを知っているので、何も期待していません。私の製品モデルは色とサイズのリンクです。 この2つのモデル(ProductCOlorとProductSize)をリンクする方法を知りたい。 –
あなたの製品が1つのサイズと1つの色だけである場合、OneToOneFieldを使用して3つのモデルをリンクすることができます。 – Gaetan