【问题标题】:Can you create instances of two foreign keys referencing the same model in one model?您可以在一个模型中创建引用同一模型的两个外键的实例吗?
【发布时间】:2019-12-18 04:45:27
【问题描述】:

我正在尝试创建一个名为 Team 的模型类的两个实例。我想创建两个存储在我的 GameId 模型中的字段,分别称为 home 和 visitor。这两个外键是从名为 Team 的同一模型中引用的。我应该使用外键还是多对多字段关系?

模型背景:

  • 一个团队可以有多个游戏ID
  • 一个gameid应该有2个团队

    class GameId(models.Model):
    
        week = models.CharField(max_length = 100)
        day = models.CharField(max_length = 100)
        home = models.ForeignKey(Team, on_delete=models.SET_NULL, null = True, 
        related_name='home')
        visitor = models.ForeignKey(Team, on_delete=models.SET_NULL, null = True, 
        related_name='visitor')
    
        gameid = models.CharField(max_length = 100, blank=True)
        slug = models.SlugField(max_length=100, unique=True, blank=True)
    

【问题讨论】:

    标签: python django model foreign-keys many-to-many


    【解决方案1】:

    如果一个 gameID 可以容纳超过 1 个团队,则需要将其设置为 ManyToMany

    class GameId(models.Model):
    
        week = models.CharField(max_length = 100)
        day = models.CharField(max_length = 100)
        home = models.ManyToMany(Team, related_name='home')
        visitor = models.ForeignKey(Team, on_delete=models.SET_NULL, null = True, 
        related_name='visitor')
    
        gameid = models.CharField(max_length = 100, blank=True)
        slug = models.SlugField(max_length=100, unique=True, blank=True)
    

    【讨论】:

    • 谢谢!这帮助很大
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 2017-10-13
    相关资源
    最近更新 更多