Смешивание множественного наследования 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).

Кроме того, не могли бы вы подумать о тестовом примере, который может выявить потенциальную проблему с такой схемой?

0 ответов

Другие вопросы по тегам