Python 如何在django中实现一对多关系?
所以我有一个案例,我必须在django中使用一对多关系,我不知道如何使用它。我想在订单(一)Python 如何在django中实现一对多关系?,python,django,Python,Django,所以我有一个案例,我必须在django中使用一对多关系,我不知道如何使用它。我想在订单(一)和产品(多个)中实现一对多关系,这可能是多个。我的代码如下: class Product(models.Model): name = models.CharField(max_length=200) price = models.IntegerField() image = models.ImageField() category = models.ForeignKey(C
和产品(多个)
中实现一对多关系,这可能是多个。我的代码如下:
class Product(models.Model):
name = models.CharField(max_length=200)
price = models.IntegerField()
image = models.ImageField()
category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True, null=True)
created_at = models.DateField(auto_now_add=True)
def __str__(self):
return self.name
class Order(models.Model):
order_id = models.CharField(max_length=20)
user = models.ForeignKey(User, on_delete=models.CASCADE)
在您的例子中,
用户
和产品
之间存在M:N关系,因为一个产品
可以是多个订单
的成员,而订单
可以包含多个产品
。它被建模为两个1:N关系,如下所示
┌─────────┐
│ Product │
│ - name │◄──┐
│ - price │ │ ┌───────────────┐
└─────────┘ └────────┤ Order │
│- <FK> User │
┌─────────┐ ┌────────┤- <FK> Product │
│ User │ │ └───────────────┘
│ - name │◄──┘
└─────────┘
查看有关关系的文档,您所说的显然是订单和产品之间的多对多关系,而不是一对多关系。否则,一个产品只能以一个订单出现,而这可能不是您想要的。在代码中如何使用该选项添加多个产品?也谢谢你的回答
class Order(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE, blank=True, null=True)
...