我有4个型号,产品,变体和颜色。
class Size(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
class Color(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
class Product(models.Model):
title = models.CharField(max_length=100)
description = models.TextField(max_length=400)
colors = models.ManyToManyField(Color)
sizes = models.ManyToManyField(Size)
class Variant(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
price = models.DecimalField(decimal_places=2, max_digits=10,
validators=[MinValueValidator(Decimal('0.01'))])
quantity = models.IntegerField(validators=[MinValueValidator(0)])
color = models.ForeignKey(Color, on_delete=models.CASCADE)
size = models.ForeignKey(Size, on_delete=models.CASCADE)
在这个例子中,一个变量可以有1个产品,1种颜色和1种尺寸。问题是颜色和尺寸是在商店中的所有颜色和尺寸中选择的。我想将变量中的颜色和尺寸限制为在产品中选择的颜色和尺寸选项。
如果有,请让我知道。谢谢:)
1条答案
按热度按时间x7yiwoj41#
从逻辑上讲,为了根据您的要求限制条件,您应该覆盖Variant模型的保存方法,并告诉该方法验证颜色和尺寸是否属于要创建的对象中提到的当前产品。
告诉我有没有用。