Смешивание множественного наследования ndb.Model с PolyModel в AppEngine
В моем приложении мы используем базовую модель для хранения общих свойств, которая является простым подклассом 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, а также чтобы можно было искать все подклассы Widget, используя один запрос (что добавляет PolyModel).
Кроме того, не могли бы вы подумать о тестовом примере, который может выявить потенциальную проблему с такой схемой?