2013-05-27 56 views
0

我試圖從一個db Expando 子類訪問一個ndb PolyModel子類的引用屬性。我的兩個班級是這樣的:對於類別異常Python Google App Engine沒有實現

class Foo(polymodel.PolyModel): 
    ... 

class Bar(db.Expando): 
    ... 
    foo_reference = db.ReferecnceProperty(None, collection_name='foos') 
    ... 

這兩個定義在不同的文件中。 我使用以下方法指定參考:

... 
foo = Foo.query.get() 
bar.foo_reference = ndb.Key.to_old_key(foo.key) 
... 

我沒有問題。我可以在應用程序引擎儀表板中看到存儲在數據庫中的條目,但是當我嘗試訪問foo_reference時,我得到'沒有實現Foo'的異常。問題行看起來像這樣: foo = bar.foo_reference.get()

我有doble檢查我的所有導入,實際上可以創建一個Foo實體,我嘗試訪問該實體。 在引用ndb的數據庫引用屬性中是否存在一些限制? 我該如何解決這個問題?

回答

0

您的Bar和Foo類需要導入。直到您導入它們,檢索實體和重新創建模型實例的基本機制無法找到該類。 導入它們將創建類到實體的註冊表。

可能是處理程序的路徑,查詢未導入模型。

進一步看你的代碼,你也混合db和ndb,加上你有很多錯字,爲什麼你使用ndb.Key.to_old_key,如果你使用db作爲模型定義而不是nbd,或者是另一個錯字。

相關問題