如何将模型“ A”与模型“ B”的属性匹配?

时间:2019-04-15 08:58:06

标签: django python-3.x django-models

我是一名法国学生,正在学习Django。我的项目是创建一个网站,使您可以管理体育赛事。 这是我的课程图:

http://prntscr.com/nc39r8

我在锦标赛表中有一个属性“ nbMaxTeam”,例如,如果该属性等于4,我希望当我创建与锦标赛相关的第5支队伍时告诉我这是不可能的。我该如何使用我的模型呢?

class Team(models.Model):
    name        = models.CharField(max_length=16)
    nbplayers   = models.IntegerField()
    totalpoints = models.IntegerField()
    position    = models.IntegerField(default=0)
    pool        = models.ForeignKey(Pool, default=None, on_delete=models.CASCADE)
    tournament  = models.ForeignKey(Tournament, default=None, on_delete=models.CASCADE)
class Tournament(models.Model):
    name        = models.CharField(max_length=32)
    dateStart   = models.DateField(auto_now=False, auto_now_add=False)
    dateEnd     = models.DateField(auto_now=False, auto_now_add=False)
    nbMaxTeam   = models.IntegerField()

2 个答案:

答案 0 :(得分:1)

可能希望查看文档,尤其是模型验证:https://docs.djangoproject.com/en/2.2/ref/models/instances/#id1

答案 1 :(得分:0)

您可以在views.py中查看已经属于您的锦标赛的球队数量。

例如,在将团队添加到您的第一个锦标赛中时:

def create_team(request):
    tournament = Tournament.objects.get(id=1)
    if tournament.nbMaxTeam < 4:
        team = Team.objects.create(tournament=tournament)
    else:
        # Do something else...