How can I get the ndb.Model when my only input is an ndb.Query?

前端 未结 2 622
醉梦人生
醉梦人生 2020-12-21 14:00

Let\'s say there is ndb.Model that looks like this:

class Foo(ndb.Model):
  bar = ndb.StringProperty()

My question is, if my o

相关标签:
2条回答
  • 2020-12-21 14:21

    After you have imported code with this model definition, the list ndb.Model._kind_map should contain it. Here is the magic:

    def query_to_model(query):
      return ndb.Model._kind_map[query.name]
    
    0 讨论(0)
  • 2020-12-21 14:26

    I use this code to find the model class if you have the kind name:

    model_module = KIND_MODULES(kind_name)
    mod = __import__(model_module, globals(), locals(), [kind_name], -1)
    model_class = getattr(mod, kind_name)
    

    The KIND Modules dict holds the modules to import the models from:

    KIND_MODULES = { 'Users' : 'models', 'Comments' : 'models', 'Cities' : 'examples.models' }
    
    0 讨论(0)
提交回复
热议问题