Как мне добавить данные, а затем объединить таблицы в DJango - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть список игроков, которые я хотел бы собрать статистику в 3 отдельных категориях.(Спешка, прохождение и получение).

Каждую неделю игрок получает новую статистику для каждой категории.

То, что я хотел бы сделать, это перечислить 5 лучших игроков для каждой категории.по заказу тех, кто когда-либо имел больше всего ярдов для этой конкретной статистики.Я не совсем уверен, как настроить запрос (ы) в моем файле views.py или нужно ли что-то делать в моем файле шаблона в django.

Вот как выглядят мои модели:

class Player(models.Model):

    first_name = models.CharField(
        max_length = 100,
        verbose_name = "First Name"
        )
    last_name = models.CharField(
        max_length = 100,
        verbose_name = "Last Name"
        )
    position = models.CharField(
        max_length = 2,
        choices = (('QB', 'QB',), ('RB', 'RB',), ('WR', 'WR',), ),
        blank = True
        )
    team = models.CharField(
        max_length = 30,
        choices = (('Dallas', 'Dallas',), ('New York', 'New York',), ('Tampa Bay', 'Tampa Bay',), ),
        blank = True
        )
    number = models.CharField(
        max_length = 3,
        blank = True
        )

class PlayerStat(models.Model):
    player = models.ForeignKey(Player)

    week_num = models.CharField(
        max_length = 10,
        choices = (('1', 'Sep 2nd',), ('2', 'Sep 9th',), ('3', 'Sep 16th',),('4', 'Sep 23rd',), ('5', 'Sep 30th',), ('6', 'Nov 2nd',),('7', 'Nov 7th',), ('8', 'Nov 14th',), ('9', 'Nov 21st',),('10', 'Nov 28th',), ('11', 'Dec 4th',), ('12', 'Dec 11th',), ),
        blank = True,
        null=True
        )
    rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts",
        blank=True
        )
    rushing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Yards",
        blank=True
        )
    rushing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Touchdowns",
        blank=True
        )
    passing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Passing Attempts",
        blank=True
        )
    passing_completions = models.CharField(
        max_length = 100,
        verbose_name = "Passing Completions",
        blank=True
        )
    passing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Passing Yards",
        blank=True
        )
    passing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Passing Touchdowns",
        blank=True
        )
    receptions = models.CharField(
        max_length = 100,
        verbose_name = "Receptions",
        blank=True
        )
    receiving_yards = models.CharField(
        max_length = 100,
        verbose_name = "Receiving Yards",
        blank=True
        )
    receiving_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Receiving Touchdowns",
        blank=True
        ) 

Я новичок в Python и Django, поэтому любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

1 голос
/ 10 сентября 2011

Прежде всего, вам нужно изменить модель, чтобы использовать DecimalField для статистики, а затем запросить для каждой статистики верхнюю 5:

PlayerStat.objects.order_by('receiving_yards')[:5]

Вы также можете указатьсписок заказов более одного поля для заказа от

PlayerStat.objects.order_by('receiving_yards,receptions,receiving_touchdowns')[:5]
...