我可以在App Engine中找到所有基本模型吗?

时间:2009-11-30 23:34:09

标签: python google-app-engine

给出类似于类的关系:

class A(db.Model):
    pass

class B(A):
    pass

我可以获得所有基类吗?查询:

models.A.all().fetch(1)

返回一个空列表。

2 个答案:

答案 0 :(得分:2)

数据存储区本身不支持这种多态性 - 但您可以使用polymodel class来执行此操作。只需继承PolyModel而不是Model,事物就会像你期望的那样或多或少地表现出来。

答案 1 :(得分:1)

数据存储区本身不记录继承:它将B实体存储为类B。你可以使用A得到A.__subclasses__()的所有(直接的,正确的)子类(如果你想要间接子类,你需要对它们中的每一个做同样的事情,等等,递归地,直到你停止获取子类),并对它们执行所有.all查询。