Django多对多数据模型

时间:2017-08-05 05:14:12

标签: python django django-models

我正在尝试创建涉及产品,客户和订单的数据结构。客户和产品是独立的表,而订单则引用产品和客户。

订单表字段:

  1. 时间戳
  2. 客户
  3. 产品和数量
  4. 这是我尝试创建一个django模型来实现这个目标:

    from django.db import models
    
    class Customer(models.Model):
        name = models.CharField(max_length=30)
        latitude = models.FloatField(default=0)
        longitude = models.FloatField(default=0)
    
    class Product(models.Model):
        name = models.CharField(max_length=30)
        weight = models.FloatField(default=0)
    
    class Order(models.Model):
        customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
        timestamp = models.DateTimeField(auto_now=True)
        products = models.ManyToManyField(Product)
        quantity = ?
    

    如何创建映射到特定产品的数量字段?也可以使用替代模型来获得相同的结果。

2 个答案:

答案 0 :(得分:1)

在ManyToManyField中使用through

speech.config

答案 1 :(得分:0)

我会建议一个包含产品及其数量的模型。像下面的东西。

class ProductOrder(models.Model):
    product = models.ForeignKey(Product)
    quantity = models.IntegerField()

然后按顺序:

class Order(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    timestamp = models.DateTimeField(auto_now=True)
    products = models.ManyToManyField(ProductOrder)