0

データストアからの ID へのアクセスに関するこのトピックを調べました。今、私は何かをしようとしましpost.key().id()たが、私が望む数値IDを返しません。

Google データストア内のエンティティの数値 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

これは、数値 ID を取得するメソッドです。

None を取得した場合は、ID に文字列を使用してエンティティを作成したことを意味します。

あなたは試すことができます

key().id_or_name() データ エンティティの名前または数値 ID のいずれかを返します。エンティティに名前も数値 ID もない場合は None を返します。

None を取得しid_or_name()た場合、エンティティはまだ取得されていないことを意味しますput()

于 2013-06-22T02:57:20.857 に答える
0

エンティティを作成するときは、祖先キーと、文字列名または数値 ID のいずれかを指定します。

文字列で作成した場合、数値 ID はありません。

おそらく name() が必要です。または、わからない場合は id_or_name()

ドキュメントは次のとおりです: https://developers.google.com/appengine/docs/python/datastore/keyclass#Key_id_or_name

于 2013-06-22T06:16:03.197 に答える