Django中具有相同实体的不同一对多关系



如何在Django中的相同实体之间实现两个不同的一对多关系?

例如:假设我们在一个身体运动和所涉及的肌肉之间有两种关系。对于每一个动作,我都希望能够区分它的主要动作肌肉和支撑肌肉。在实践中,我会引入两个表(movement2primarymuscle,movement2supportingmucsle(,并为每个表中的每个关系创建一行外键。Django用Django模型实现这一点的方法是什么?

可以这样做:

class Movement(models.Model):
primary_muscle = models.ForeignKey(Muscle)
supporting_muscle = models.ForeignKey(Muscle)

如果您正在考虑多对多关系(所描述的数据库模型似乎是多对多的(,那么如下所示:

class Movement(models.Model):
primary_muscles = models.ManyToManyField(Muscle, related_name="movement_primary")
supporting_muscles = models.ManyToManyField(Muscle, related_name="movement_supporting")

最新更新