首页 > 解决方案 > Django 模型约束

问题描述

我有以下型号

from django.db import models

class league(models.Model):
name = models.CharField(max_length=64)

def __str__(self):
    return f"{self.name}"

class player(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=128)
age = models.IntegerField()
position = models.CharField(max_length=1)
nteam = models.CharField(max_length=128)

def __str__(self):
    return f"{self.id} {self.name} {self.age} {self.position} {self.nteam}"

class team(models.Model):
name = models.CharField(max_length=64)
league = models.ForeignKey(league, null=True, blank=True, on_delete=models.CASCADE, related_name="teams")
roster = models.ManyToManyField(player, blank=True, related_name="rosters")

def __str__(self):
    return f"{self.name} {self.league}"

我的目标是拥有许多不同的联赛,每个联赛包含多支球队。我希望一名球员只被添加到联盟中的一支球队。现在我创建了一个联赛,添加了几支球队,然后为每支球队添加了球员。到目前为止,如果我愿意,我可以带一名球员加入同一个联赛的所有球队。您将如何添加约束,以便一旦将一名球员添加到一支球队,就不能再将他们添加到同一联赛的另一支球队?

标签: djangodjango-models

解决方案


推荐阅读