获取GAE Python中所有NDB模型名称(类名称)的列表

gsi*_*nha 2 python google-app-engine google-cloud-datastore

如何在GAE Python中获取所有NDB模型名称的列表?

所有NDB模型都是继承自的Python类ndb.Model.我想我们可以使用这些信息来获取所有模型的名称.

class BK (ndb.Model): 
    property_1 = ..
Run Code Online (Sandbox Code Playgroud)

我尝试下面(借用)代码,但徒劳无功:

ATTEMPT 1

logging.info ( [ cls.__name__ for cls in globals()['ndb.Model'].__subclasses__() ] )
Run Code Online (Sandbox Code Playgroud)

它导致错误:

KeyError:'ndb.Model'

ATTEMPT 2

logging.info ( [ cls.__name__ for cls in globals()['Model'].__subclasses__() ] )
Run Code Online (Sandbox Code Playgroud)

它导致错误:

KeyError:'模型'

Jai*_*mez 5

幸运的是,在这种情况下,它更容易:

from google.appengine.ext import ndb


class Test(ndb.Model):
    pass

print ndb.Model._kind_map
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

{'Test': Test<>}
Run Code Online (Sandbox Code Playgroud)