0

アプリエンジンでは、次のようなモデルがあります:

class Matchday(ndb.Model):
    num = ndb.IntegerProperty()
    name = ndb.StringProperty()

class Match(ndb.Model):
    matchday = ndb.KeyProperty(kind='Matchday')
    home = ndb.KeyProperty(kind='Team')
    away = ndb.KeyProperty(kind='Team')
    date = ndb.DateTimeProperty()

次のように、Matchdays と Match のすべてのアイテムを取得します。

matchdays = Matchday.query().order(Matchday.num).fetch()
matches = Match.query().order(Match.date).fetch()

それらをテンプレートに渡します(jinja2を使用)。テンプレートで、すべての試合日をリストし、これらの試合日内の対応する試合を次のようにネストされたリストでリストしたい

% for matchday in matchdays %}
    {% for match in matchday.matches %}
        {{ <<do somethin with the match here>> }} 
    {% endfor %}
{% endfor %}

これは明らかにうまくいきません。ネストされた for ループ内で、特定の試合日に属する一致のみを取得するにはどうすればよいですか? 私が実装した KeyProperty でそれを行うことができますか、それともモデルを変更する必要がありますか?

4

2 に答える 2

1

KeyProperty は、同じ種類の別のキーと比較可能です

matches = Match.query(Match.matchday == matchday.key).fetch()

編集:

これをMatchdayモデルに追加すると、コードが機能します

@property
matches = Match.query(Match.matchday == self.key).fetch()
于 2013-08-18T18:56:42.397 に答える