0

我看过这个主题,关于从数据存储区访问 id。现在我尝试做类似的事情,post.key().id()但它没有返回我想要的数字 ID。

如何访问谷歌数据存储中实体的数字 ID。我正在使用带有 Python 2.7 的 GAE 1.8。我相信与我刚刚向您展示的问题相比,已经发生了很多变化。

这完全是为我的实体创建一个永久链接的尝试post,它是一篇博客文章。

这是代码:

# coding=utf-8
from google.appengine.ext import db


class BlogPost(db.Model):
    title = db.StringProperty(required=True)
    content = db.TextProperty(required=True)
    created_at = db.DateTimeProperty(auto_now_add=True)

    def url(self):
        return '/blog/%s' % self.key().id()

对此的任何帮助将不胜感激。

4

2 回答 2

0

When you create an entity, you specify an ancestor key, and one of either a string name, or a numeric id.

If you create it with a string, there is no numeric id.

You probably want name(), or if you're not sure id_or_name()

Here are the docs: https://developers.google.com/appengine/docs/python/datastore/keyclass#Key_id_or_name

于 2013-06-22T06:16:03.197 回答
0

您期望这是获取数字 id 的方法。

如果你得到 None 那么这意味着你已经使用一个字符串作为 id 创建了实体。

你可以试试

key().id_or_name() 返回数据实体的名称或数字 ID,以它具有的为准;如果实体既没有名称也没有数字 ID,则返回 None。

如果您从中得到 Noneid_or_name()意味着该实体尚未成为put()

于 2013-06-22T02:57:20.857 回答