如何在Google App Engine中获取最后插入的项键
我正在使用Google App Engine和Python进行开发。
我有一个包含项目的模型。
在我用item.put()插入一个项目后,
我想获取它的键,并用这个键重定向到一个页面。
大概是这样的:
redirectUrl = "/view/key/%s/" % item.key
self.redirect(redirectUrl)
3 个回答
1
在你执行了 put()
之后,你可以运行
item.key().id()
获取 id()
比直接使用 key()
更安全一点,因为这样你间接调用了 __str__()
,而在某些情况下可能不会发生这种情况。
另外一个选择是调用 id_or_name()
,但在那种情况下你可能已经知道名字是什么了。
4
另外,item.put() 这个方法会返回你刚刚放进去的键,所以你几乎不需要立刻再去获取那个键。你只需要调整一下你的顺序,比如说
item.put()
redirectUrl = "/view/key/%s/" % item.key()
改成
k = item.put()
redirectUrl = "/view/key/%s/" % k
1
感谢Scott Kirkwood的提议。 其实我刚才忘记加()了。
redirectUrl = "/view/key/%s/" % item.key()
self.redirect(redirectUrl)
很高兴知道在谷歌的数据存储中,你不需要使用像Scope_identity这样的东西,而是可以在item.put()之后直接获取item.key()。