【问题标题】:Different One-To-Many relationships with same entities in DjangoDjango中相同实体的不同一对多关系
【发布时间】:2020-10-02 04:57:44
【问题描述】:

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

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

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    可以这样做:

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

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      相关资源
      最近更新 更多