ロジャー、あなたのdevの環境でこれを試してみて、それが動作するかどうかを確認:
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext import db
class Score(db.Model):
level = db.IntegerProperty()
score = db.IntegerProperty()
submitted = db.IntegerProperty()
class MainHandler(webapp.RequestHandler):
def get(self):
level = 1
if Score.all().count() == 0:
Score(level = 1, score = 10, submitted = 10).put()
Score(level = 1, score = 10, submitted = 11).put()
Score(level = 1, score = 10, submitted = 12).put()
Score(level = 1, score = 11, submitted = 10).put()
Score(level = 1, score = 11, submitted = 20).put()
Score(level = 1, score = 12, submitted = 10).put()
q = Score.all().filter("level = ", level).order("-score").order("-submitted")
score_list = q.fetch(10)
self.response.out.write([
(s.level, s.score, s.submitted) for s in score_list ])
def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
あなたは「それが動作していないようです」明確でした。何を得ることが期待され、何を得るのですか? – gae123
上記の例は簡略化されています。私は、「スコア」でソートされたトップ10のスコアのリストを取得し、次に各スコアのソートの中で「提出された」ソートされたスコアを並べることを除きます。したがって、同じ値の2つのスコアがあった場合、最新のものが最初になります。同じ価値の100のスコアがあったならば、私は最新の10を得るでしょう。これはうまくいくと思われますか?そうであれば、私のコードで他の場所を見始めるでしょう。 –
私は期待した結果で私のコードでこれをやっていると確信しています。インデックスが最新でないかどうか疑問に思っていました。すでにデータストアにデータがある場合は、関連するインデックスを追加しましたか? – gae123