Из документации:
Код: Выделить всё
class Base(DeclarativeBase):
pass
class DefaultBase(Base):
__abstract__ = True
metadata = MetaData()
class OtherBase(Base):
__abstract__ = True
metadata = MetaData()
Мне любопытно, когда описанный выше подход должен быть предпочтительнее создания двух независимых унаследованных абстрактных баз. непосредственно из DeclarativeBase.
Код: Выделить всё
class Base1(DeclarativeBase):
__abstract__ = True
metadata = MetaData()
class Base2(DeclarativeBase):
__abstract__ = True
metadata = MetaData()
Вторая часть этого вопроса касается использования самого атрибута __abstract__. В документах указано:
Код: Выделить всё
__abstract__Когда дело доходит до базовых классов, как вышеизложенное, что именно меняет Abstract? Если я правильно понимаю, сопоставление не создается, если класс не является подклассом Base и не определяет столбцы и __tablename__? Итак, существует ли здесь фактическое ограничение __abstract__?
Подробнее здесь: https://stackoverflow.com/questions/791 ... lchemy-2-0
Мобильная версия