在我的应用程序中,我们使用一个基本模型来保存通用属性,它是 ndb.Model 的一个简单子类。但是,对于某些功能,能够利用多模型功能非常有帮助。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 类,而且还能够使用单个查询(这是 PolyModel 添加的)搜索 Widget 的所有子类。
另外,你能想出一个测试用例来暴露这种方案的任何潜在问题吗?