目前我使用像下面的代碼 -有沒有辦法將NDB類型作爲字符串傳遞?
Price.query().fetch(keys_only=True))
的Price
這裏是硬編碼樣的名字。有沒有什麼辦法有類似:
def get_kind_keys(kindname):
return Kind(kindname).query().fetch(keys_only=True)
目前我使用像下面的代碼 -有沒有辦法將NDB類型作爲字符串傳遞?
Price.query().fetch(keys_only=True))
的Price
這裏是硬編碼樣的名字。有沒有什麼辦法有類似:
def get_kind_keys(kindname):
return Kind(kindname).query().fetch(keys_only=True)
ndb
保持與所有車型dict
,你可以自己嘗試:
from google.appengine.ext import ndb
print ndb.Model._kind_map
您的代碼段將結束這樣的:
def get_kind_keys(kindname):
return ndb.Model._kind_map[kindname].query().fetch(keys_only=True)
ndb.Query
接受一種在它的構造函數。您可以實現get_kind_keys
爲:
def get_kind_keys(kindname):
return ndb.Query(kind=kindname).fetch(keys_only=True)
什麼可以讓使用_kind_map
更吸引人的是,如果你使用PolyModel
,呼籲模型query()
將正確篩選所需的類。否則,這兩個解決方案是等價的。您可以查看source code以瞭解Model._query
究竟有什麼區別。