2011-01-07 25 views
5

Hola, estaba buscando limitar una relación ForeignKey a un número específico.
Digamos que solo puede haber 12 personas en un equipo de baloncesto.Django: Limitar el número de relaciones en una relación 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> 

** ¿hay una opción para que limitaría hasta 12 jugadores por equipo aquí?

con algún error adicional al crear un pitón?

Respuesta

4

No hay una forma directa de limitar el número de jugadores en un equipo en la definición de ForeignKey. Sin embargo, esto se puede hacer con un poco de trabajo con su modelo.

Una opción sería hacer un método en el equipo, algo así como:

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

    self.player_set.add(player) 

entonces usted desea añadir siempre los jugadores a través de este método.

Cuestiones relacionadas