Найти - Пользователи
Полная версия: [Django models] Турнирная таблица
Начало » Django » [Django models] Турнирная таблица
1
4umak
Есть необходимость организовать вывод результатов определённого соревнования по некоторым правилам. Правила:

Места команд на первом этапе Чемпионата определяются по большей сумме набранных очков. За победу в матче команде начисляется 3 очка, за ничью – 1 очко, за поражение – 0 очков.

В случае равенства очков у двух и более команд их места определяются:

1. По результатам игр(ы) между собой:

- большему количеству набранных очков;

- лучшей разнице забитых и пропущенных мячей;

- большему количеству мячей забитых в этих играх;

- большему количеству мячей, забитых на чужом поле в этих играх;
Модели получаются такие:

# -*- coding: utf-8 -*-

from django.db import models

# Таблица "Команда" с единственным полем "название"
class Team(models.Model):
name = models.CharField(max_length=30)
number = models.IntegerField(null=False)

def __unicode__(self):
return self.name

# Таблица "Игра" с полем даты, внешними ключами на названия участвующих команд и поля с забитыми голами
class Games(models.Model):
date = models.DateTimeField()
team1 = models.ForeignKey(Team, related_name="team1")
team2 = models.ForeignKey(Team, related_name="team2")
team1_goals = models.IntegerField()
team2_goals = models.IntegerField()

def __unicode__(self):
return str(self.date)
Как бы так связать название команды с забитыми её голами? Т.е. ведь в разных играх одна и та же команда может быть указана и как team1 и как team2, а привязки кол-ва голов именно к названию никакой нет. Может быть есть возможность забивать в базу словарь?

Просто я не знаю тогда, как по-человечески организовывать выборку.

Всем заранее спасибо за помощь!:)
svas
я бы еще одну таблицу создал, например с именем Group
И почему у тебя related_name = team1, team2?
Поля с данными именами будут у модели Team. Наверное в обоих случаях лучше сделать games
Хотя не, так нельзя
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB