2014-10-30 56 views
-1

所以我有以下代碼:的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') 

我想是在打賭pooints到TEAM1或TEAM2在比賽上的一個參數,我已經試過如下:

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

但是,這給我一個語法錯誤。什麼是正確的方法來做到這一點?

回答

1

您的聲明僅指示何種類型的對象填充模型的該屬性。在這種情況下,Team國外關鍵點,所以正確的聲明應該是

team = models.ForeignKey(Team) 

。另一方面,上市隊兩次似乎效率不高,所以你會做的更好,以簡單地對哪個隊一個選擇字段在下注中被選中。舉一個例子:

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

然後您的視圖代碼將關閉並確定要顯示的兩個團隊中的哪一個。