代码之家  ›  专栏  ›  技术社区  ›  Aadil Hoda

如何添加与manytomanyfield相关的另一个字段?

  •  0
  • Aadil Hoda  · 技术社区  · 6 年前
    class Team(models.Model):
        college = models.CharField(max_length=20)
        image = models.FileField(upload_to='documents/',null=True)
    
    
        def __str__(self):
            return self.college  
    
      class Athletics(Match):
            time = ?
            player = models.ManyToManyField(Player, related_name='player')
            game_level = models.CharField(max_length=256, null=True, choices=LEVEL_CHOICES) # like semi-final, final etc
            game_specific = models.CharField(max_length=256,null=True, choices=EVENT_CHOICES) #like Men's Shot Put or Men's Triple Jump etc
    
            def __str__(self):
                return str(self.game_level)
    

    我正在做一个 田径 体育比赛的运动模型。我有一个现有的 玩家 我列出球员姓名和他们的球队的模型。如你所见,我已经补充了 运动员 作为曼尼托曼尼菲尔德选择的领域 4-5岁 运动员比赛。现在,我需要为每一位选手争取时间来判断谁有资格参加下一轮比赛。只能在这个模型中这样做吗?或者我必须添加另一个模型?帮助我!

    1 回复  |  直到 6 年前
        1
  •  1
  •   blhsing    6 年前

    你需要一个介于运动员和运动员之间的中间模型来记录这两个模型的多对多关系的特定信息。请阅读 Extra fields on many-to-many relationships .

    class PlayeAthletics(models.Model):
        player = models.ForeignKey(Player, on_delete=models.CASCADE)
        athletics = models.ForeignKey(Athletics, on_delete=models.CASCADE)
        time = models.IntegerField()
    
    class Athletics(Match):
        player = models.ManyToManyField(Player, through='PlayerAthletics')