如何在Django中的相同实体之间实现两种不同的一对多关系?
例如: 假设我们在身体运动和所涉及的肌肉之间有两种关系。对于每个动作,我都希望能够区分其主要作用的肌肉和支撑的肌肉。在实践中,我将引入两个表(movement2primarymuscle,motion2supportingmucsle),并为每个表中的每个关系创建一个带有外键的行。 用Django模型实现此功能的Django方法是什么?
答案 0 :(得分:0)
可以这样做:
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")