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...
這裏是peoblem。在主頁上,我想顯示每個作業的前三名(基於分數)團隊工作。所以,我通過這我的模板:
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生成時,我都會將其與列表中的分數進行比較,以保持前三名的新鮮度。但我認爲這種方式不是elengance。
你能給我一些建議嗎?
謝謝!
謝謝尼克。但是有很多作業,每次作業都需要TOP3。如果我在我的python文件中查詢,這意味着我需要迭代所有這些任務,並找到每個人的TOP3。你建議我把每個任務的所有TOP3都放到一個分數列表中?我嘗試使用'assignmentEntity.teamScores.order(' - score')。fetch(3)'獲得一個任務的TOP3,但似乎是訂單不起作用。訂單功能不能對用戶引用屬性,可以嗎? – hakunami
@stevenYANG是的,但無論你在哪裏做,你都必須做很多的查詢。我建議構建一個(賦值,前三個)元組列表,其中第二個元素是最高分數列表。 –
對不起,我只是想說清楚,YES意味着我可以訂購一個refernece屬性?我在上次評論中寫的代碼是否可用? – hakunami