Django在ForeignKey中建模多个参数

时间:2014-10-30 20:04:40

标签: python django

所以我有以下代码:

class Team(models.Model):
   shortName = models.CharField(max_length=255)
   fullName = models.CharField(max_length=255)
   desc = models.CharField(max_length=255)


class Match(models.Model):
    team1 = models.ForeignKey(Team, related_name='team1')
    team2 = models.ForeignKey(Team, related_name='team2')
    start_date = models.DateTimeField('date start')


class Bet(models.Model):
    user = models.ForeignKey(User)
    match = models.ForeignKey(Match)
    team = models.ForeignKey(Team)
    transaction = models.ForeignKey(Transaction)
    pub_date = models.DateTimeField('date published')

我想要的是Bet中的一个参数,在Match中加入team1或team2,我尝试了以下内容:

team = models.ForeignKey(Match.team1, Match.team2)

然而,这给我一个语法错误。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您的声明仅指示哪种类型的对象填充了该模型的属性。在这种情况下,外键指向Team,因此正确的声明应为

team = models.ForeignKey(Team)

另一方面,两次列出球队似乎效率低下,所以你最好只选择一个选择区域,以便在投注中选择哪支球队。举个例子:

team = models.CharField(max_length=1, choices=(('H', 'Home team'), ('A', 'Away team')))

然后,您的视图代码将关闭并确定要显示的两个团队中的哪一个。