Lip*_*pis 1 python google-app-engine app-engine-ndb
让我们说有ndb.Model这样的事情:
class Foo(ndb.Model):
bar = ndb.StringProperty()
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我唯一的输入是Foo.query()如何将模型作为此查询所属的对象?
def query_to_model(query):
# some magic
return model
Run Code Online (Sandbox Code Playgroud)
将Foo.query().kind模型的名称作为字符串返回,但我没有设法找到将其作为对象的方法.
以下工作原理使用eval,但仅当模型在同一文件中定义时:
def query_to_model(query):
return eval(query.kind)
Run Code Online (Sandbox Code Playgroud)
我想要比这更通用的东西.
使用此模型定义导入代码后,列表ndb.Model._kind_map应包含该代码.这是魔术:
def query_to_model(query):
return ndb.Model._kind_map[query.name]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |