0

我有这些模型:

class Assignment(db.Model):
    title = db.StringPeoperty(required=True)
    ...other stuff...

class TeamScore(db.Model):
    assignment = db.ReferenceProperty(Assignment, 
                                      collection_name="teamScores",
                                      required=True)
    teamID = db.IntegerProperty(required = True)
    score = db.IntegerProperty(required = True)
    ...other stuff...

这是人们的问题。在主页中,我想显示每个作业的前三名(基于分数)团队工作。所以,我将它传递给我的模板:

assignments = Assignment.all()

在模板中:

{% for assignment in assignments%}
    **<!--How to implement showing the top three-->**
    {% for score in assignment.teamScores%}
         {{score.teamID}}
         {{score.score}}
         ...............
    {% endfor%}
{%endfor%}

使用此数据存储模型。我需要在模板中排序,这是不可能的。所以,我认为它可能有更好的模型来处理这个问题。但我无法弄清楚。我想到了这个想法,添加一个 ListProperty 来存储前三个。每次生成新的 TeamScore 时,我都会将其与列表中的分数进行比较,以保持前三名的新鲜度。但我认为这种方式并不优雅。

你能给我一些建议吗?

谢谢!

4

1 回答 1

1

这不是数据建模问题,而是模板问题。您需要获取分配并执行查询以获取代码中的分数列表,并将结果传递到模板中,而不是仅传递分配模型并在模板中完成其余工作。

于 2012-05-14T05:48:13.520 回答