【发布时间】:2018-05-01 05:59:29
【问题描述】:
我需要能够将同一对象的多个副本添加到多对多关系中。
假设问题在于记录某人拥有的家具类型。这是我的基本模型:
class Person(models.Model):
name = models.CharField(max_length=100)
class Furniture(models.Model):
furniture_name = models.CharField(max_length=100) #e.g. Chair, Sofa.
假设我想记录 Sam 拥有 3 张椅子和 2 张沙发。但我不想在数据库中创建多个 sofa 对象。我怎样才能通过多对多关系做到这一点?传统的多对多具有防止这种情况发生的唯一约束。
我正在考虑使用一个直通表,其中包含唯一约束中的另一个字段(购买日期,或者只是一个随机字符串)。这行得通吗?
有人有更好的方法吗?
【问题讨论】:
-
您需要在 Person 和 Furniture 之间的数据透视表上添加一列。 (我不了解 Django,但这可以帮助您找到有效的答案)