1

我尝试构建 GqlQuery 并通过指定 ID 获取实体,但我收到错误“IndexError:查询返回的结果少于 1 个”。DataStore 不为空。在数据存储查看器中,我找到了必要的 ID。我的代码放在下面:

from google.appengine.ext import db from models.models import News

news = News.gql("WHERE id = 4265")

打印新闻[0].title


我知道 get_by_id 方法,由于某些原因它不满意。但是英语对我来说不是母语,因此我不明白如何正确使用 Key.from_path。

4

2 回答 2

1

你为什么要写一个 Gql 查询,当你可以使用模型类的get_by_id()方法时。

注意: id 可以通过 python 中的 object.Key().id() 从对象中获取,在模板中,您只需调用 object.key.id

news = News.get_by_id(4265)

或者您可以使用db.Key.from_path获取密钥并将其传递给 get() 方法。

new = News.get(db.Key.from_path('News', 4265))

于 2011-05-18T05:25:13.147 回答
1

尝试:

news = News.get_by_id(4265)
if news is not None: 
  print news.title

或者,如果您必须使用 GQL,

news = News.get(db.Key.from_path('News', 4265))
...
于 2011-05-18T01:37:39.173 回答