所以我有以下代码:
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)
然而,这给我一个语法错误。这样做的正确方法是什么?
答案 0 :(得分:1)
您的声明仅指示哪种类型的对象填充了该模型的属性。在这种情况下,外键指向Team
,因此正确的声明应为
team = models.ForeignKey(Team)
另一方面,两次列出球队似乎效率低下,所以你最好只选择一个选择区域,以便在投注中选择哪支球队。举个例子:
team = models.CharField(max_length=1, choices=(('H', 'Home team'), ('A', 'Away team')))
然后,您的视图代码将关闭并确定要显示的两个团队中的哪一个。