1

GqlQuery を構築し、指定された ID でエンティティを取得しようとしましたが、「IndexError: The query returned than 1 results」というエラーが表示されます。DataStore が空ではありません。Datastore Viewer で、必要な ID を見つけました。私のコードは以下に配置されています:

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

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

印刷ニュース[0].タイトル


get_by_id メソッドについては知っていますが、いくつかの理由で満足できません。しかし、私にとって英語は母国語ではないため、Key.from_path の正しい使い方がわかりませんでした。

4

2 に答える 2

1

モデルクラスのget_by_id()メソッドを使用できるのに、なぜGqlクエリを記述したいのですか。

注: 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 に答える