【问题标题】:How to add another field in connection with a ManyToManyField?如何添加与 ManyToManyField 相关的另一个字段?
【发布时间】:2018-12-09 13:29:29
【问题描述】:
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)

我正在为体育比赛制作一个田径运动运动模型。我有一个现有的 Player 模型,其中列出了球员姓名和他们的球队。现在如您所见,我已将 player 字段添加为 ManyToManyField 以供选择 4-5 个玩家匹配。现在我需要每个球员的完成时间来判断谁有资格进入下一轮。是否可以仅在此模型中执行此操作?或者我必须添加另一个模型?帮帮我!

【问题讨论】:

    标签: python mysql django django-models


    【解决方案1】:

    您需要一个介于 Player 和 Athletics 之间的中间模型来记录特定于两个模型的多对多关系的信息。请阅读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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 2013-02-05
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多