映画データストアがあり、そこにある各レコードには、以下のようなキー名として独自の ID があります。
12345
32453
12154
78873
34543
ユーザーがムービーを 1 つずつ閲覧できるようにしたいと考えています。まず、最新の映画が表示されます (データベースにはadded
日付と時刻のフィールドがあります)。データストアからそれを取得する方法は?
更新。私は以下のようにそれを行うことができます:
movies = Movies.query()
movies.order(-Movies.added)
for movie in movies.fetch(1):
self.response.out.write(movie.key.id())
しかし、私はそれが好きではありません - キーを取得するために、レコード全体を要求します。
第 2 に、他の映画 (例: 12154) が表示されている場合、ユーザーは前の映画 (id 32453) と次の映画 (id 78873) に移動できる必要があります。もちろん、最後の映画が表示された場合、次の映画はありません。最初のムービーが表示された場合、前のムービーは表示されません。では、問題は次の映画と前の映画のキー ネームを取得する方法です。
更新。現在表示されている映画が 12154 の場合、example.com/movie/32453
前の映画とexample.com/movie/78873
次の映画のようなリンクを生成する必要があります。
更新。私は以下のようなものを試しました:
next_movie = Movies.query(Movies.added < movie.added)
next_movie = next_movie.order(-Movies.added)
next_movie = next_movie.get()
if next_movie:
next_url = next_movie.key.id()
else:
next_url = ''
prev_movie = Movies.query(Movies.added > movie.added)
prev_movie = prev_movie.order(-Movies.added)
prev_movie = prev_movie.get()
if prev_movie:
prev_url = prev_movie.key.id()
else:
prev_url = ''
しかし、うまくいきません...next_url
大丈夫なようですが、prev_url
いつも同じです。これが私のテストデータベースの内容です(-Movies.added
注文):
id added
503035: 2012-08-05 19:49:51.259000
475537: 2012-08-05 19:49:51.238000
677539: 2012-08-05 19:49:51.218000
566355: 2012-08-05 19:49:51.197000
557850: 2012-08-05 19:49:51.176000
670146: 2012-08-05 19:49:51.155000
581030: 2012-08-05 19:49:51.135000
464561: 2012-08-05 19:49:51.114000
507817: 2012-08-05 19:49:51.092000