SQLAlchemy抽象类关系

2024-05-23 19:54:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的应用程序中,我想建立以下层次结构:

class BaseCadastralObject(Base):
    abstract__ = True

    cadastral_region = Column(Integer, primary_key=True, index=True)
    cadastral_district = Column(Integer, primary_key=True, index=True)
    cadastral_object = Column(Integer, primary_key=True, index=True)

这些字段组合一个主键。在

A有一个子类,例如:

^{pr2}$

我还有一个表,它应该与以下对象相关(多对多):

class Parameter(Base):

    __tablename__ == 'parameters'
    parent_cadastral_region = Column(Integer, nullable=False)
    parent_cadastral_district = Column(Integer, nullable=False)
    parent_cadastral_object = Column(Integer, nullable=False)

    parent_building = relationship(BaseCadastralObject, backref='parameters')
                                   ^^^^^^^^^^^^^^^^^^^
    __table_args__ = (ForeignKeyConstraint(
        [parent_cadastral_region, parent_cadastral_district, parent_cadastral_object],
        [BaseCadastralObject.cadastral_region, BaseCadastralObject.cadastral_district, BaseCadastralObject.cadastral_object]),
                  {}
)

我应该能够做到以下几点:

b = Building(...)
parameters = b.parameters

但是我得到了不同的错误例如这个:

sqlalchemy.orm.exc.UnmappedClassError: Class 'app.models.BaseCadastralObject' is not mapped

Tags: keyfalsetrueindexobjectcolumnintegerregion