1

给定一个 db.Key 实例,例如:

db_key = db.Key.from_path('ModelKind', 'UniqueKeyName')

有没有办法像 AppEngine 能够在内部那样返回“ModelKind”的类表示?

就像是

db_key.class()

最终结果是我需要在给定键的情况下动态检索类(以构造新实体)。我不提前知道实体类型(“ModelKind”可以是我们的“模式”类(db.Model 子类)表示的任何模型类型)

我想避免的:

import schema_module
cls = getattr(schema_module, 'ModelKind')

因为它将限制“ModelKind”在特定的 schema_module 中定义。

4

1 回答 1

2

您可以通过从键实例获取值“ModelKind” db_key.kind()。然后,您可以使用db.class_for_kind()来获取相关的类本身。所以:

cls = db.class_for_kind(db_key.kind())
于 2013-07-26T00:24:14.307 回答