2013-06-21 38 views
0

我看過this topic,關於從數據存儲區訪問ID。現在我試着做類似post.key().id()的東西,但它不會返回我想要的數字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() 

任何有關此幫助將不勝感激。

+0

是什麼回報?自從您提到的問題以來,沒有什麼重大變化。 – Greg

+0

@Greg:首先感謝您的回覆。它返回整個對象。 '在內存地址0x987938475處< - 類似的東西。 –

回答

0

你在期待什麼,這是獲取數字ID的方法。

如果你得到None,那麼它意味着你已經使用字符串爲id創建了實體。

你可以嘗試

key().id_or_name() 返回的名稱或數據實體,無論其有或無,如果實體既沒有名字,也沒有一個數字ID的數字ID。

如果你從id_or_name()無則意味着該實體還有待於put()

+0

這可以在模板中使用,但是當我做'self.key().id_or_name()'時,它給了我這樣的東西:'>' –

+0

在你得到什麼。你有這個對象,但是你的代碼試圖訪問一個blogpost對象的'url'方法,但是沒有調用這個方法。所以我會認爲id()也可以工作,你只是永遠不會調用url方法。 –

+0

對不起,聽起來真的很愚蠢,但我該怎麼做呢?我有點困惑。代碼示例將非常感謝。 –

相關問題