2011-01-07 9 views
5

こんにちは私はForeignKey関係を特定の数に制限しようとしていました。
バスケットボールチームには12人しかいないと言います。Django:OnetoMany関係のリレーションシップ数を制限する

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) 

その後、あなたは、常にこの方法で選手を追加したい:

1つのオプションは、チーム、のようなものでメソッドを作ることであろう。

関連する問題