我有电影数据存储,那里的每条记录都有自己的 id 作为键名,如下所示:
12345
32453
12154
78873
34543
我想允许用户一一浏览电影。首先,应该显示最新的电影(数据库有added
日期和时间字段)。如何从数据存储中获取它?
更新。我可以这样做:
movies = Movies.query()
movies.order(-Movies.added)
for movie in movies.fetch(1):
self.response.out.write(movie.key.id())
但我不喜欢它——为了得到钥匙,我要求整张唱片。
其次,如果显示了其他电影(例如,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