1

Я новичок в разработке веб-сайтов, а также в движке Google. Я действительно не понимаю, что такое функция ключа в ndb, я думаю, что это как первичный ключ для каждой строки? Если функция ключа - идентифицировать любые строки в каждом объекте, могу ли я использовать его для выполнения запроса?Google App Engine о ключе в ndb

Я также не понимаю, как получить ключ в каждой строке. В документах мы должны использовать этот код для возврата ключа, а также для хранения в базе данных.

sandy_key = sandy.put() 

Что делать, если я не хочу ничего хранить, но хочу только получить ключ. Например:

class Post(ndb.Model): 
    title = ndb.StringProperty() 
    content = ndb.TextProperty() 
    created = ndb.DateTimeProperty(auto_now=True) 

И затем я делаю запрос.

q = Post.query(Post.title == "test") 

Возможно ли получить ключ от этого запроса?

Спасибо

ответ

1

Вы на самом деле ищете идентификатор хозяйствующего субъекта (или идентификатор). Ключ лица состоит из идентификатора и вида. Обычно это название модели, которая в вашем случае - «Почта».

Вы можете получить идентификатор объекта, используя метод .id(). В вашем примере вы должны сначала «получить» или «получить» сущность. Вы предоставили запрос. Если вы должны были принести один объект, соответствующие введенному запросу и найти идентификатор этого объекта, ваш код будет выглядеть следующим образом:

q = Post.query(Post.title == "test") 
my_entity = q.fetch(1, keys_only=True) 
my_key = my_entity.id() 

«keys_only» параметр выборки не является необходимым, но это действительно экономит ресурсы, поскольку он сообщает выборке только для получения ключа.

Эта информация объясняется в документации NDB Entity Keys.

+0

Это работает. Его все о fetch и get command, после использования get/fetch я могу видеть реальную структуру каждого объекта. Большое вам спасибо, сэр –

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