【问题标题】:Add extra field in manytomany relationship in django在 django 的多对多关系中添加额外的字段
【发布时间】:2020-06-20 06:32:21
【问题描述】:

我正在尝试创建我的应用程序的模型,但在布局中感到困惑

class Product(models.Model):

    name = models.CharField(max_length=500, default=0)
    short_code = models.CharField(max_length=500, default=0,unique=True)

class Kit(models.Model):

    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    kit_name = models.CharField(max_length=500, default=0)
    product = models.ManyToManyField(Product)

现在一个人可以在应用中添加多个产品,而一个 Kit 可以有多个产品, 问题从这里开始。我想将数量字段添加到Kit 模型,以便人们可以在套件中添加特定项目及其数量。我该怎么做?

【问题讨论】:

标签: django orm many-to-many


【解决方案1】:

像这样扩展您的 Kit 模型:

class Kit(models.Model):

    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    kit_name = models.CharField(max_length=500, default=0)
    product = models.ManyToManyField(Product)
    quantity = models.FloatField()

然后用户可以在form 中定义Product 及其quantity。这就是您真正需要的所有内容来涵盖您呈现的设置。

更新您的评论

然后我会去寻找另一个像这样的关系:

class ProductQuantity(models.Model):
    quantity = models.ManyToManyField(Product)
    # and remove it from the Kit Model

所以每个Product 都可以链接到它的quantity

【讨论】:

  • 但是我不能通过这个解决方案拥有每个productquantity
  • @RahulSharma 啊,从一开始就没有直接解决您的问题。在这种情况下,我会添加另一个关系,请参阅答案中的更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 2016-06-18
相关资源
最近更新 更多