我从数据存储区访问id时看了this topic。现在我尝试做类似post.key().id()
的操作,但它不会返回我想要的数字ID。
如何访问Google数据存储区中实体的数字ID。我正在使用GAE 1.8与Python 2.7。我相信我刚刚向你展示的问题已经发生了很多变化。
这是为我的实体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()
对此有任何帮助将不胜感激。
答案 0 :(得分:0)
您期望这是获取数字ID的方法。
如果您获得None,则表示您已使用id的字符串创建实体。
你可以尝试
key().id_or_name()
返回数据实体的名称或数字ID,无论它具有哪个,如果实体既没有名称也没有数字ID,则返回None。
如果您从id_or_name()
获得“无”,则表示该实体尚未成为put()
答案 1 :(得分:0)
创建实体时,指定一个祖先键,以及字符串名称或数字ID之一。
如果使用字符串创建它,则没有数字ID。
你可能想要name(),或者如果你不确定id_or_name()
以下是文档:https://developers.google.com/appengine/docs/python/datastore/keyclass#Key_id_or_name