Python Django中的3路多对多关系

Python Django中的3路多对多关系,python,sql,django,orm,many-to-many,Python,Sql,Django,Orm,Many To Many,我有个人模型、学期模型和房间模型。 我正在尝试建立一个三方多对多关系 我通过一个关联实体(第四个模型)实现了这一点,它有3个外键(一个用于个人,一个用于学期,一个用于房间) Django-ish使用内置ManyToManyField的方式是什么?或者将其与3路m2m一起使用是不合适的?我正在使用through参数查看漏斗状2个多个字段,但我想看看是否有其他人发现了这一点 谢谢。您需要告诉我们您的要求,您希望实现什么样的关系。我们猜不出你想建立什么样的多对多关系。我认为一个额外的模式来保持这种关系

我有个人模型、学期模型和房间模型。 我正在尝试建立一个三方多对多关系

我通过一个关联实体(第四个模型)实现了这一点,它有3个外键(一个用于个人,一个用于学期,一个用于房间)

Django-ish使用内置ManyToManyField的方式是什么?或者将其与3路m2m一起使用是不合适的?我正在使用through参数查看漏斗状2个多个字段,但我想看看是否有其他人发现了这一点


谢谢。

您需要告诉我们您的要求,您希望实现什么样的关系。我们猜不出你想建立什么样的多对多关系。我认为一个额外的模式来保持这种关系(你所做的)是最好的方式。我确信这不是一种多对多的关系,因为一个人可以在更多的学期里使用一个房间。这个房间在这学期可以被更多的人使用。一个人在这学期可以拥有更多的房间。您需要明确授权用于关系的实体。您可能需要许多过滤器,例如,您希望限制人与房间之间的关系,仅限于一学期。可能的过滤器太多了,您应该只实现作为模型管理器方法经常使用的过滤器。未经过滤的m2m关系似乎对你没有帮助。@ShangWang一个房间可能有多个人。一个人在那个学期只有一个房间。你需要告诉我们你的要求,你想达成什么样的关系。我们猜不出你想建立什么样的多对多关系。我认为一个额外的模式来保持这种关系(你所做的)是最好的方式。我确信这不是一种多对多的关系,因为一个人可以在更多的学期里使用一个房间。这个房间在这学期可以被更多的人使用。一个人在这学期可以拥有更多的房间。您需要明确授权用于关系的实体。您可能需要许多过滤器,例如,您希望限制人与房间之间的关系,仅限于一学期。可能的过滤器太多了,您应该只实现作为模型管理器方法经常使用的过滤器。未经过滤的m2m关系似乎对你没有帮助。@ShangWang一个房间可能有多个人。一个人在那个学期只有一个房间。