我有两个模型A和B,中间模型C用于使用through
保持多对多关系。
因为C中的额外字段对于A和B的两个相同的相关对象可以具有不同的值,所以在逻辑上可以这样做吗?
即C中(A,B)的外键对不是唯一的(Django不会在它们上创建unique_together
)
答案 0 :(得分:1)
两个对象之间的多个关系可能存在于through
表中。但是,在获取相关项时,这会产生令人惊讶的结果,因为a.b_set.all()
将包含来自B
的项目的多个副本,其中存在多个关系。如果不希望这样,那么您可以使用a.b_set.all().distinct()
删除重复的项目。