3

在我的应用程序中,我们使用一个基本模型来保存通用属性,它是 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 的所有子类。

另外,你能想出一个测试用例来暴露这种方案的任何潜在问题吗?

4

0 回答 0