2013-02-16 3 views
1

Когда я делаю следующий запрос, чтобы получить KEY, я получаю null. Ниже приводится запрос:GAE DATASTORE select __KEY__

g_keys = db.GqlQuery("SELECT __KEY__ FROM greeting") 

Вот объекты в поздравительных БД Объект:

Key Write Ops  ID Key Name author comment  date   source 
aglkZXZ-... 11 11 None  None COMMENT1 2013-02-16  twitter 
glkZXZ-... 11 12 None  None COMMENT2 2013-02-17  facebook 

и здесь является определение модели:

class Greeting(db.Model): 

    author = db.UserProperty() 
    comment = db.StringProperty(multiline=True) 
    source = db.StringProperty(multiline=False) 
    date = db.DateTimeProperty(auto_now_add=True) 

Пожалуйста, дайте мне знать, что я делаю неправильно.

Заранее спасибо

ответ

1

Для ключа запросов только вы должны использовать key_only аргумент.

g_keys = Greeting.all(keys_only=True) 

Кстати: в запросе использовать приветствие, но ваше имя модели Приветствие

+0

Спасибо. Опечатка не была в коде. Но проблема в том, что даже когда я использую созданную конструкцию, я все равно получаю только нули. Есть ли что-то еще, что требуется для меня, чтобы я получил ключи? Вот результат извлечения, когда я использовал вашу конструкцию [{«type»: «Приветствие», «id»: null}, {«type»: «Приветствие», «id»: null}]} (то же самое, что и выполнение GQLQuery ключей). –

+0

Что вы делаете, чтобы получить '[{" type ":" Greeting "," id ": null}, {" type ":" Greeting "," id ": null}]' Казалось бы, вы получаете ключи назад , учитывая, что вы получаете значение для своего типа - что я предполагаю, что вы используете key.kind() для получения. –

+0

Привет, Тим, Не уверен, если я пойму. Идентификаторы генерируются системой, и, как показано выше, я ожидаю, что ID вернется 11 и 12 (как видно из экрана ah_admin). Но когда я получаю его в программе, они возвращаются как нули. Пожалуйста помоги! –

Смежные вопросы