如何获取GAE Python中所有NDB模型名称的列表?
所有NDB模型都是继承自ndb.Model
的Python类。我想我们可以使用这些信息来获取所有模型的名称。
class BK (ndb.Model):
property_1 = ..
我尝试了以下(borrowed)代码,但徒劳无功:
ATTEMPT 1
logging.info ( [ cls.__name__ for cls in globals()['ndb.Model'].__subclasses__() ] )
导致错误:
KeyError:' ndb.Model'
ATTEMPT 2
logging.info ( [ cls.__name__ for cls in globals()['Model'].__subclasses__() ] )
导致错误:
KeyError:'模型'
答案 0 :(得分:5)
幸运的是,在这种情况下,它要容易得多:
from google.appengine.ext import ndb
class Test(ndb.Model):
pass
print ndb.Model._kind_map
产生以下输出:
{'Test': Test<>}
答案 1 :(得分:3)
除了Jaime的答案之外,还有metadata API,它可以告诉您已在数据存储区中注册的实体种类。