给定一个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())

10-08 18:37