您正在阅读GAE的文档,需要进行一些小的澄清。如果我的db模型是这样的: -
class Phone(Model):
phone_name = db.StringProperty()
r = Phone(Nokia, key_name='first')
r.put()
现在,如果我必须检索此实体但我不知道密钥,我可以构建这样的密钥:
k=db.Key('Phone','first')
并且一旦构造了密钥,就可以像这样检索实体: -
r=db.get(k)
答案 0 :(得分:2)
你很亲密。唯一的主要区别是你必须传递实际的类而不是表示类名的字符串,而你必须使用Key.from_path()
工厂方法而不是默认的构造函数:< / p>
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)
但总的来说,我发现依赖自动生成的ID通常比指定自己的密钥名称更好。有没有特别的原因让你做后者?