Django多个多对多通过

时间:2015-02-13 10:52:27

标签: django manytomanyfield

我有两个模型A和B,中间模型C用于使用through保持多对多关系。 因为C中的额外字段对于A和B的两个相同的相关对象可以具有不同的值,所以在逻辑上可以这样做吗? 即C中(A,B)的外键对不是唯一的(Django不会在它们上创建unique_together

1 个答案:

答案 0 :(得分:1)

两个对象之间的多个关系可能存在于through表中。但是,在获取相关项时,这会产生令人惊讶的结果,因为a.b_set.all()将包含来自B的项目的多个副本,其中存在多个关系。如果不希望这样,那么您可以使用a.b_set.all().distinct()删除重复的项目。