如何在Google App Engine中获取最后插入的项键

1 投票
3 回答
1494 浏览
提问于 2025-04-15 11:18

我正在使用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()。

撰写回答