在我的应用程序中,我们使用基本模型来保存常规属性,这是ndb.Model的一个简单子类。但是,对于某些功能,能够利用polymodel功能非常有帮助。据说Model和PolyModel都支持多重继承,我的问题是,有没有注意到下面的内容?
from google.appengine.ext import ndb
from google.appengine.ext.ndb import polymodel
class InternalBase(ndb.Model):
# some fields, methods shared to many sub-models
class Widget(polymodel.PolyModel, InternalBase):
# widget-general
class TextWidget(Widget):
# widget-specific
class HTMLWidget(Widget):
# widget-specific
目标是让所有来自InternalBase的基本属性和方法可用于Widget类,但也能够使用单个查询搜索Widget的所有子类(这是PolyModel添加的内容)。
另外,你能想到一个测试用例,可以揭露这种方案的任何潜在问题吗?