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...

ここに問題があります。ホームページでは、各課題のチームワークの上位 3 つ (スコアに基づく) を表示したいと考えています。したがって、これをテンプレートに渡します。

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%}

このデータストア モデルを使用します。テンプレートでソートする必要がありますが、それは不可能です。したがって、この問題を処理するためのより良いモデルがあると思います。しかし、私はそれを理解することはできません。上位 3 つを格納するために ListProperty を追加するというこのアイデアについて考えました。新しい TeamScore が生成されるたびに、これをリスト内のスコアと比較して、トップ 3 を最新の状態に保ちます。しかし、私はこのやり方はエレガンスではないと思います。

何か提案をいただけますか?

ありがとうございました!

4

1 に答える 1

1

これはデータ モデリングの問題ではなく、テンプレートの問題です。割り当てモデルを渡して残りの作業をテンプレートで行うのではなく、割り当てをフェッチし、クエリを実行してコード内のスコアのリストを取得し、結果をテンプレートに渡す必要があります。

于 2012-05-14T05:48:13.520 に答える