给定一个db.Key实例,例如:
db_key = db.Key.from_path('ModelKind', 'UniqueKeyName')
由于AppEngine可以在内部执行操作,有没有办法返回“ ModelKind”的类表示形式?
就像是
db_key.class()
最终结果是,我需要在给定键的情况下动态检索该类(以构造一个新实体)。我不知道实体类型提前(“ ModelKind”可以是我们的“ schema”类(db.Model子类)表示的任何模型类型)
我要避免的是:
import schema_module
cls = getattr(schema_module, 'ModelKind')
因为它将限制“ ModelKind”在特定的schema_module中定义。
最佳答案
您可以通过db_key.kind()
从键实例中获取值“ ModelKind”。然后,您可以使用db.class_for_kind()
获取相关的类本身。所以:
cls = db.class_for_kind(db_key.kind())