多重继承将ndb.Model与AppEngine中的PolyModel混合

时间:2013-09-04 16:07:23

标签: python google-app-engine google-cloud-datastore app-engine-ndb polymodel

在我的应用程序中,我们使用基本模型来保存常规属性,这是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添加的内容)。

另外,你能想到一个测试用例,可以揭露这种方案的任何潜在问题吗?

0 个答案:

没有答案
相关问题