GqlQuery и ID - PullRequest
       61

GqlQuery и ID

1 голос
/ 18 мая 2011

Я пытаюсь построить GqlQuery и получить объект по указанному идентификатору, но я получаю ошибку «IndexError: запрос вернул менее 1 результата». Хранилище данных не пусто. В Datastore Viewer я нашел необходимый идентификатор. Мой код находится ниже:

из google.appengine.ext import db из models.models import Новости

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

печать новостей [0]. Заголовок


Я знаю о методе get_by_id, по некоторым причинам он меня не устраивает. Но английский для меня не родной, из-за этого я не понимал, как правильно использовать Key.from_path.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Почему вы хотите написать запрос Gql, когда вы можете просто использовать get_by_id () метод класса модели.

примечание: идентификатор можно получитьиз объекта object.Key (). id () внутри python и в шаблонах вы просто вызываете object.key.id

news = News.get_by_id(4265)

или можете использовать db.Key.from_path чтобы получить ключ и передать его методу get ().

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

1 голос
/ 18 мая 2011

Попробуйте:

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

Или, если вы должны использовать GQL,

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