如何仅使用Key设置ReferenceProperty,而不是获取Model

时间:2011-03-31 01:43:04

标签: google-app-engine google-cloud-datastore referenceproperty

我希望能够在给定数据存储区中模型的关键字的情况下,只需设置referenceproperty而不加载模型本身(因为我不需要这些信息)。

例如:

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

我找到了使用ReferencePropertyget_value_for_datastore中提取密钥和ID的方法,但我是在“设置”之后。

1 个答案:

答案 0 :(得分:5)

review.book = bookKey可以正常工作,并在不获取模型的情况下设置referenceproperty。

相关问题