【发布时间】:2013-01-27 17:21:43
【问题描述】:
我有一个包含 303 个 Game() 实体的 GAE 数据存储。
class Game(db.Model):
title = db.StringProperty(required = True)
slug = db.StringProperty(required = True)
category = db.CategoryProperty()
description = db.TextProperty(required = True)
created = db.DateTimeProperty(auto_now_add = True)
“slug”属性与标题类似,只是它用连字符替换所有空格并删除所有特殊字符。例如:(“第一场比赛!”变成“第一场比赛”)
在网站上,我列出了所有使用 Bootstrap 折叠手风琴的 303 游戏。它工作得很好,但是因为有这么多游戏,我试图设置一个列出字母表的侧面导航。用户将单击其中一个字母以跳转到列表的特定位置。例如:(用户点击“N”,页面跳转到以“N”开头的游戏)。
我知道这是可行的,因为如果我将“slug”硬编码到 HTML 中,它会正确跳转到所需位置。但是,“slug”必须在正确的“slug”之前一,否则它不会正确跳跃。例如:(用户点击'N',HTML中的slug需要'my-last-m-game'才能跳转到正确的位置,并在页面顶部显示'N'个游戏)。
我的问题(对于冗长的解释感到抱歉)是,是否可以通过 GQL 查询来获取字母表中每个字母的最后一场比赛?还是将所有游戏放在列表/字典中并以这种方式获得正确的“slug”更好?或者我应该向数据本身添加一个属性,它允许我只搜索“A”游戏或“T”游戏的 GQL 搜索,以获得正确的“slug”。或者是否有我可以在 Bootstrap 中使用的偏移量,这将允许我获得第一个“N”游戏“slug”并使用它跳转到页面上的正确位置?
感谢您提供的任何帮助。这是我第一次在stackoverflow上发帖,如果我做的不对,请道歉。
【问题讨论】:
标签: google-app-engine twitter-bootstrap google-cloud-datastore gql