Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
值集的django模型字段_Django - Fatal编程技术网

值集的django模型字段

值集的django模型字段,django,Django,我有一个叫Product的django模型。我希望有一套价值观。具体来说,每种产品都会有不同的尺寸(比如500毫克,1克,批量订购;每种产品的具体尺寸会有所不同),此外,我还应该有相应的成本。比如说, 1g-500美元 5g-1500美元 批量订购-要求报价 对于另一种产品,这可能是: 100毫升-100美元 200毫升-170美元 1L-1000美元 我可以使用类似于: size1 = models.CharField(max_length=200) price1 = models.D

我有一个叫Product的django模型。我希望有一套价值观。具体来说,每种产品都会有不同的尺寸(比如500毫克,1克,批量订购;每种产品的具体尺寸会有所不同),此外,我还应该有相应的成本。比如说,

  • 1g-500美元
  • 5g-1500美元
  • 批量订购-要求报价
对于另一种产品,这可能是:

  • 100毫升-100美元
  • 200毫升-170美元
  • 1L-1000美元
我可以使用类似于:

size1 = models.CharField(max_length=200)
price1 = models.DecimalField
size2 = models.CharField(max_length=200)
price2 = models.DecimalField
size3 = models.CharField(max_length=200)
price3 = models.DecimalField

有没有更好的方法来实现这一点?有没有类似于集合场的东西?谢谢

创建另一个模型-尺寸:

class Product(models.Model):
   .....
   .....


class Price(models.Model):
    prodcut = models.ForeignKey(Product)
    TYPE_CHOICES = (
    (1, "Gram"),
    (2, "ML"),
    (3, "L"),
    )
    quanty_type = models.IntegerField(choices=TYPE_CHOICES, default=1)
    quanty = models.CharField(max_length=200)
    price = models.DecimalField()
class Size(models.Model):
    product = models.ForeignKey(Product, on_delete = models.CASCADE)
    value = models.IntegerField(blank=True, null=True)
    units = models.CharField(blank=True, null=True)
    sequence = models.IntegerField()
    price = models.FloatField(blank=True, null=True)
    notes = models.CharField(blank=True, null=True)
    

通过这种方式,您可以创建任意数量的尺寸,序列将指示属于产品的尺寸对象的订单号。如果您只想记录批量订单,那么只需填写注释
notes='批量订单-询问报价'
并跳过单位、价值和价格,默认情况下这些将为零。

谢谢。我可能解释得不好。我希望每种产品有三套不同的数量和三个相应的价格。不仅仅是一种数量类型和一种价格。不要存储货币价值​​在FloatField中,使用。你也可以考虑使用非结构化的值,这将是一个很好的选择,特别是如果你不需要搜索这些参数。是的,你是对的,你甚至可以更好地将货币值存储在整数(美分)中,我只是认为,在这个特定的情况下,如果没有货币交易,你可以使用浮点。