看起來db.Key和ndb.Key實例是不一樣的。將db.Key轉換爲ndb.Key - AppEngine上的Python
我有一個db.Key實例。我如何將其轉換爲ndb.Key?
這就是我想要做的事:
NDBEntity(ndb.Model):
some_property = ndb.StringProperty()
DBEntity(db.Model):
some_property = ndb.StringProperty()
# I have an instance of a DBEntity already saved in the datastore
db_entity_instance = DBEntity.all().get()
ndb_entity_instance = NDBEntity(id="some_id", parent=db_entity_instance.key(), some_property="foo").put()
# The above line doesn't work because it expects a Key Instance for the parent, and it doesn't seem to recognize a db.Key instance.
任何想法?
在同一個應用程序中使用這兩個可能是一個糟糕的主意 - 您應該一次性移植所有代碼。 –
我同意尼克的觀點,但有些情況下,將舊款式轉換爲新款的價格過高。在這種情況下,可能需要暫時在舊密鑰和新密鑰之間工作,或者在新的ndb模型上爲舊的db.py模型創建屬性引用。 –