Я полагаю, что запрос Gcl не может включать в себя вызовы методов доступа или извлечение атрибута (во многом в том же духе, что и тот факт, что он может только "SELECT * FROM"
извлекать целые объекты или "SELECT __key__ FROM"
извлекать только ключи - он не может выбирайте поля, как в [гипотетически! -)] "SELECT this, that FROM
").
Итак, вам нужно выбрать ключи, а затем вызвать .id()
аксессор каждого ключа (если вы хотите None
для ключей, у которых нет идентификатора, а есть имя; используйте .id_or_name()
, если хотите получить имя, если оно доступно, и None
только в крайнем случае). Например, чтобы получить только идентификаторы, отличные от None:
thekeys = db.GqlQuery('SELECT __key__ FROM Whatever').fetch(1000)
theids = [k.id() for k in thekeys if k.id() is not None]