2011-09-09 42 views
0

我有一个玩家列表,我想收集3个不同类别的统计数据。 (冲,传,接)。我如何添加数据,然后在DJango中加入表格

每周玩家获得每个类别的新统计数据。

我希望能够做的是列出每个类别中排名前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

首先我必须改变模型使用DecimalField的统计数据,然后 查询每个统计的前5名:

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

你也可以给一个订单列出多个领域要订购从

PlayerStat.objects.order_by('receiving_yards,receptions,receiving_touchdowns')[:5] 
相关问题