2011-01-07 20 views
5

Hallo, ich wollte eine ForeignKey-Beziehung auf eine bestimmte Nummer beschränken.
Sagen wir, es können nur 12 Leute in einer Basketballmannschaft sein.Django: Begrenzung der Anzahl der Beziehungen in einer OnetoMany-Beziehung

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> 

** Gibt es eine Möglichkeit, bis zu 12 Spieler pro Team zu begrenzen?

mit zusätzlichen zusätzlichen Erstellen eines Python-Fehlers?

Antwort

4

Es gibt keine direkte Möglichkeit, die Anzahl der Spieler in einem Team auf der ForeignKey-Definition zu begrenzen. Dies kann jedoch mit ein wenig Arbeit mit Ihrem Modell getan werden.

Eine Möglichkeit wäre, ein Verfahren auf Team zu machen, so etwas wie:

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

    self.player_set.add(player) 

Dann würden Sie wollen immer Spieler durch diese Methode hinzufügen.

Verwandte Themen