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

Django中具有相同实体的不同一对多关系,django,django-models,Django,Django Models,如何在Django中的相同实体之间实现两种不同的一对多关系 例如: 假设我们在身体运动和肌肉之间有两种关系。对于每一个动作,我想能够区分它的主要动作肌肉和支撑肌肉。在实践中,我将引入两个表(movement2primarymuscle、movement2supportingmucsle),并为每个表中的每个关系创建一个带有外键的行。 Django使用Django模型实现这一点的方法是什么?可以这样做: class Movement(models.Model): primary_muscl

如何在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")
如果您考虑的是多对多关系(所描述的db模型似乎是多对多),则如下所示:

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")