Как установить ReferenceProperty, используя только ключ, не получая модель

Я хочу иметь возможность, имея ключ к модели в хранилище данных, просто установить свойство reference, не загружая саму модель (поскольку мне не нужна эта информация).

Например:

class Book(db.Model):
    author = db.StringProperty()
    title = db.StringProperty()

class Review(db.Model):
    book = db.ReferenceProperty(Book)
    description = db.StringProperty()

Предполагая, что у меня уже есть ключ к Book (назовем его bookKey), но у меня нет самого соответствующего объекта Book, есть ли способ сделать эквивалент

review = Review()
review.description = "It was ok, but I would recommend it for insomniacs."
review.book = bookKey

или мне нужно

book = Book.get(bookKey) #I don't want this datastore access
                         #as I don't need the book object.
review = Review()
review.description = "It was ok, but I would recommend it for insomniacs."
review.book = book

Я нашел способ извлечь ключ и идентификатор из ReferenceProperty с помощью get_value_for_datastore, но мне нужен «набор».


person jrnewman42    schedule 31.03.2011    source источник


Ответы (1)


review.book = bookKey будет работать нормально и установит свойство reference без извлечения модели.

person Nick Johnson    schedule 31.03.2011
comment
Спасибо. Это именно то, что мне было нужно (это и снова привести строковое представление, которое у меня было, в качестве ключа). - person jrnewman42; 01.04.2011