django - 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}"
我的目标是拥有许多不同的联赛,每个联赛包含多支球队。我希望一名球员只被添加到联盟中的一支球队。现在我创建了一个联赛,添加了几支球队,然后为每支球队添加了球员。到目前为止,如果我愿意,我可以带一名球员加入同一个联赛的所有球队。您将如何添加约束,以便一旦将一名球员添加到一支球队,就不能再将他们添加到同一联赛的另一支球队?
解决方案
推荐阅读
- javascript - 当新项目添加到 Framer Motion (React) 中的列表顶部时,列表项目的动画布局
- matlab - 在 MATLAB 中制作动画时如何修复帧大小错误
- jquery - 为什么我不能用我的 jQuery ion.rangeSlider 范围滑块更新我的第二个输入值?
- django - ProgrammingError: 函数 lower(bigint) 不存在 (Django, AWS RDS, PostgreSQL)
- spring - Quarkus spring Hibernate和多租户如何设置?
- python - 更改值但新值覆盖上一个值
- javascript - 命令处理程序中的异步
- flutter - DataCell 中的动态 TextFormField => (PaginatedDataTable)
- javascript - Axios 调用在反应功能组件中运行两次
- python - python selenium 错误“元素未附加到页面文档”