如何在单个属性中存储多个值

oro*_*aki 1 python django e-commerce

我不知道我是否正确地想到这一点,也许有人会让我直截了当.

假设我有一个包含以下内容的models.py:

class Order(models.Model):
  customer = models.foreignKey(Customer)
  total = models.charField(max_length=10)
  has_shipped = models.booleanField()

class Product(models.Model):
  sku = models.charField(max_length=30)
  price = models.charField(max_length=10)
Run Code Online (Sandbox Code Playgroud)

现在,显然订单将包含产品而不仅仅是产品.将产品添加到订单的最佳方式是什么?我能想到的唯一方法是在"订单"中添加另一个名为"产品"的字段,并在其中填入带有sku的CSV.由于显而易见的原因,这并不理想,但我对这些东西并不是很擅长,也不知道更好的方法是什么.

(请记住这是伪代码,所以不要介意拼写错误等)

Gar*_*son 7

您所追求的是产品与订单之间的多对多关系.

就像是:

class Order(models.Model):
  customer = models.foreignKey(Customer)
  total = models.charField(max_length=10)
  has_shipped = models.booleanField()
  products = models.ManyToManyField(Product)
Run Code Online (Sandbox Code Playgroud)

这里这里看到文档.