2011-01-07 92 views
5

嗨,我一直在尋找限制爲具體的數字一個ForeignKey關係的數量關係。
比方說,籃球隊只能有12人。Django的:限制在一對多關係

class Team(models.Model): 
teamName = models.CharField(max_length = 20) 
teamColors = models.CharField(max_length = 20) 
... <and so forth> 

class Player(models.Models): 
team = models.ForeignKey(Team, **) 
name = models.CharField(max_length = 20) 
heightInches = models.IntegerField() 
... <and so forth> 

**是否有一個選項可以限制每隊最多12名球員?

任何額外創建一個python錯誤?

回答

4

沒有限制的ForeignKey的定義一隊球員的數量直接的方式。但是,這可以通過與你的模型一起工作來完成。

一種選擇是使對團隊的方法,是這樣的:

def add_player(self, player): 
    if self.player_set.count() >= 12: 
     raise Exception("Too many players on this team") 

    self.player_set.add(player) 

那麼你會希望總是通過這種方法添加的球員。