Gql查询和ID

发布于 2024-11-08 06:08:20 字数 345 浏览 4 评论 0原文

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

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

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

print news[0].title


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

I try to build a GqlQuery and get an entity by the specified ID, but I get the error "IndexError: The query returned fewer than 1 results".
A DataStore is not empty. At the Datastore Viewer I've found the necessary ID.
My code is placed below:

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

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

print news[0].title


I know about the get_by_id method, by some reasons it is not satisfied me. But English is not native for me, because of this I didn't understand how to properly use Key.from_path.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

同展鸳鸯锦 2024-11-15 06:08:20

尝试:

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

或者如果您必须使用 GQL,

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

Try:

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

Or if you must use GQL,

news = News.get(db.Key.from_path('News', 4265))
...
自由如风 2024-11-15 06:08:20

当您只需使用 时,为什么要编写 Gql 查询Model 类的 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('新闻', 4265))

Why do you want to write a Gql query, when you can just use get_by_id() method of Model Class.

note: id can be get from a object by object.Key().id() inside python and in templates you simply call object.key.id

news = News.get_by_id(4265)

or you can use db.Key.from_path to get the key and pass it to get() method.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文