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