Django模型中ForeignKey的多个参数
我有以下这段代码:
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 个回答
1
你的声明只是说明了模型中这个属性是什么类型的对象。在这个例子中,外键指向的是Team
,所以正确的声明应该是
team = models.ForeignKey(Team)
另一方面,重复列出球队似乎不太高效,所以你可以简单地设置一个选择字段,用来表示在投注中选择了哪个球队。举个例子:
team = models.CharField(max_length=1, choices=(('H', 'Home team'), ('A', 'Away team')))
然后你的视图代码会根据这个选择来决定显示哪两支球队。