给出类似于类的关系:
class A(db.Model):
pass
class B(A):
pass
我可以获得所有基类吗?查询:
models.A.all().fetch(1)
返回一个空列表。
答案 0 :(得分:2)
数据存储区本身不支持这种多态性 - 但您可以使用polymodel class来执行此操作。只需继承PolyModel而不是Model,事物就会像你期望的那样或多或少地表现出来。
答案 1 :(得分:1)
数据存储区本身不记录继承:它将B
实体存储为类B
。你可以使用A
得到A.__subclasses__()
的所有(直接的,正确的)子类(如果你想要间接子类,你需要对它们中的每一个做同样的事情,等等,递归地,直到你停止获取子类),并对它们执行所有.all
查询。