Проверьте, существует ли запись в хранилище данных App Engine - PullRequest
7 голосов
/ 09 апреля 2011

Из того, что я прочитал, я должен проверять наличие записей ...

    v = PC_Applications.all().filter('column =', value)
if not v:
    return False

Но это возвращает ошибку!

IndexError: запрос возвратил менее 1 результатов

Есть идеи для этого? Я читал, что .count () плохой вариант. Я новичок в Python и App Engine, так что спасибо за терпение!

Ответы [ 3 ]

7 голосов
/ 09 апреля 2011
if not v.get():

От App Engine, класс запроса get ()

Выполняет запрос, затем возвращает первый результат, или None, если запрос не дал результатов.

3 голосов
/ 09 апреля 2011

Это должно работать:

q = db.Query(PC_Applications, keys_only = True)
if not q.get():
    return false

Я думаю, .all().filter('column =', value) еще хуже, чем .count, потому что он не выполняет запрос только по ключам.

0 голосов
/ 09 апреля 2011

Если вы действительно хотите использовать записи, сделайте что-то вроде:

results = PC_Applications.all().filter('column =', value).fetch(how_many_you_want)
if results:
    do_something_to_display_them()
else:
    do_something_else()
...