我想通過這種方式通過ReferencePropery獲取實體。通過getattr獲取數據存儲對象而無需知道它的類
getattr(model, refrence)
其中模型是db.Model
和參考是db.ReferenceProperty
。但是我得到了一個KindError,我可以通過添加下面的排序來避免這種情況。
from foomodule import ReferedKind
哪裏ReferedKind
是類我想上面getattr
獲得由實體。
但我的問題是在我的情況下,因爲我想調用此函數的性質,model
可以屬於我的任何Model類。所以我不知道ReferedKind
會是什麼。
如何在不導入每個可能的模型類的情況下撥打getattr
並獲取被引用的實體?
有沒有一種方法可以提前知道ReferanceProperty
所提及的實體的類別,以便我可以動態地導入它?
aditional的信息
我寫會返回一個JSON序列化的Python字典的功能。因爲在某些情況下,由db.to_dict()返回的字典不是json可序列化的。所以這個函數事先並不知道它將不得不放入一個字典中的模型。
感謝您的回答。從你的回答中,我意識到ndb模型更容易做到這一點。但是我已經有了現有的db模型,並且轉換到ndb需要一些時間。所以我想我堅持導入一切。現在我可以看到其他解決方法是令人厭煩的。謝謝你的時間。 –