Django模型:列出外键的有效方法是什么?

时间:2016-01-02 11:17:38

标签: mysql django database django-models

我有三个型号。我省略了一些不相关的领域。

class Team(models.Model):
    name = models.CharField(max_length=100)

class Player(models.Model):
    name = models.CharField(max_length=100)

class Match(models.Model):
    home = models.ForeignKey(Team)
    away = models.ForeignKey(Team)
    home_players = models.CharField(max_length=100, null=True)
    away_players = models.CharField(max_length=100, null=True)

home_playersaway_players具有玩家ID列表的类型,例如[1,2,3,...,15]。

我想知道更好的方法,比如使用外键列表。 因为,我在 Django Admin Page 中手动插入玩家ID时遇到了一些麻烦。在Player()中找到玩家姓名并匹配玩家的ID需要花费很多时间。如果我可以在Player()Team()之间分配某种关系,我想这项任务会更容易。

1 个答案:

答案 0 :(得分:2)

这将是many-to-many关系。

https://docs.djangoproject.com/en/1.9/topics/db/examples/many_to_many/

class Match(models.Model):
    home = models.ForeignKey(Team)
    away = models.ForeignKey(Team)
    home_players = models.ManyToManyField(Player)
    away_players = models.ManyToManyField(Player)