我涉及以下模型:团队,阶段,小组和排行榜。
一个团队和其他团队一起在组的锦标赛的每个阶段中进行比赛,而我将成为 LeaderBoard >模型以存储组的等级。我在组之外使用排行榜,因为它可能是循环赛(我需要)或淘汰赛(我不需要)。 我不能只在 Team 中设置得分字段,因为在每个阶段中,它都会重置,并且我需要重用旧的得分字段。
因此,我认为(也许有一个更好的解决方案)在 LeaderBoard 中需要一种词典,该词典用于存储我在ManyToManyForm中选择的所有团队及其得分。
这是我清理的models.py文件(抱歉,其中包含一些意大利语):
class Stage(models.Model): # Fase
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, related_name='stages')
class Group(models.Model): # Girone
FORMAT_TYPES = (('Round-Robin', "All'italiana"), ('Elimination', 'Ad eliminazione'))
stage = models.ForeignKey(Stage, on_delete=models.CASCADE, related_name='groups')
format = models.CharField(max_length=4, choices=FORMAT_TYPES, blank=True)
teams = models.ManyToManyField(Team)
class LeaderBoard(models.Model):
group = models.OneToOneField(Group, on_delete=models.CASCADE, blank=True, null=True)
答案 0 :(得分:1)
我想我了解您正在尝试做什么。如果团队要正面交锋,则可以制作两个新的“比赛”和“得分”模型。比赛与两个团队相关,然后两个分数与团队和比赛相关。
使用该系统,您可以报告阶段和小组等中的得分和比赛。
如果我对您要做什么的理解还很遥远,请告诉我
答案 1 :(得分:0)
我认为最好的方法是设置一个名为Score的新全班,其中包括两个ForeignKey,一个用于团队,一个用于LeaderBoard