问题描述
|
我只是从Google App Engine开始,对本教程中的第一个数据存储示例有点困惑。
在此示例中,每次将问候语放入数据存储区时,其父项都设置为根据留言簿名称构建的键:
greeting = Greeting(parent=guestbook_key(guestbook_name))
与
def guestbook_key(guestbook_name=None):
\"\"\"Constructs a datastore key for a Guestbook entity with guestbook_name.\"\"\"
return db.Key.from_path(\'Guestbook\',guestbook_name or \'default_guestbook\')
让我感到困扰的是,guestbook_name
本身从未明确地放置在数据存储区中。那么,那些不在数据存储区中的东西的问候孩子们呢?还是the2以某种方式自动存储?
解决方法
该示例还说:
在将\“ Guestbook \”实体设置为另一个实体的父实体之前,无需创建该实体。在此示例中,出于交易和一致性目的,将父级用作占位符。
另外,来自:http://khaidoan.wikidot.com/google-app-engine-datastore-entity-group
您可以先创建具有祖先路径的实体,而无需先创建父实体。为此,您可以使用种类和键名为祖先创建一个键,然后将其用作新实体的父级。具有相同根祖先的所有实体都属于同一实体组,无论路径的根是否代表实际实体。