Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 2, 2010 08:47:15

4umak
От:
Зарегистрирован: 2010-10-06
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

[Django models] Турнирная таблица

Есть необходимость организовать вывод результатов определённого соревнования по некоторым правилам. Правила:

Места команд на первом этапе Чемпионата определяются по большей сумме набранных очков. За победу в матче команде начисляется 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, а привязки кол-ва голов именно к названию никакой нет. Может быть есть возможность забивать в базу словарь?

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

Всем заранее спасибо за помощь!:)



Офлайн

#2 Дек. 2, 2010 13:33:33

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

[Django models] Турнирная таблица

я бы еще одну таблицу создал, например с именем Group
И почему у тебя related_name = team1, team2?
Поля с данными именами будут у модели Team. Наверное в обоих случаях лучше сделать games
Хотя не, так нельзя



Отредактировано (Дек. 4, 2010 13:42:45)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version