Google appengine-db.key () - PullRequest
       5

Google appengine-db.key ()

0 голосов
/ 30 сентября 2010

Привет, я изучаю документы GAE и нуждаюсь в небольшом уточнении.Если у меня есть моя модель БД примерно такая: -

class Phone(Model):
  phone_name = db.StringProperty()

r = Phone(Nokia, key_name='first')
r.put()

Теперь, если мне нужно извлечь эту сущность, но я не знаю ключ, могу ли я построить ключ следующим образом:

k=db.Key('Phone','first')

и после того, как ключ сконструирован, можно получить объект следующим образом: -

r=db.get(k)

1 Ответ

2 голосов
/ 30 сентября 2010

Ты рядом. Единственным существенным отличием является в том, что вам нужно передать фактический класс вместо строки, представляющей имя класса, и в том, что вы должны использовать фабричный метод Key.from_path() вместо конструктора по умолчанию:

class Phone(Model):
  phone_name = db.StringProperty()

r = Phone(phone_name='Nokia', key_name='first')
r.put()

k = db.Key.from_path('Phone', 'first')

r = db.get(k)

В целом, однако, я обнаружил, что использование автоматически сгенерированных идентификаторов, как правило, является лучшим решением, чем указание собственных имен ключей. Есть ли конкретная причина, по которой вы делаете последнее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...