考虑此代码(并使用 SQLAlchemy 0.7.7):
class Document(Base):
__tablename__ = 'document'
__table_args__ = {
'schema': 'app'
}
id = Column(types.Integer, primary_key=True)
nom = Column(types.Unicode(256), nullable=False)
date = Column(types.Date())
type_document = Column(types.Enum('arrete', 'photographie',
name='TYPES_DOCUMENT_ENUM'))
__mapper_args__ = {'polymorphic_on': type_document}
class Arrete(Document):
__tablename__ = 'arrete'
__table_args__ = {
'schema': 'app'
}
__mapper_args__ = {'polymorphic_identity': 'arrete'}
id = Column(types.Integer, ForeignKey('app.document.id'), primary_key=True)
numero_arrete = Column(types.Integer)
date_arrete = Column(types.Date())
我可以轻松地检查类中定义的列的列类型Arrete
:
Arrete.__table__.c['date_arrete'].type
Arrete
但是,如果我想通过类访问在类中定义的列,这不起作用Document
。(如果我尝试访问 KeyError c['date']
)。
有没有办法获取列类型,无论该列是在最终类中还是在其父类中定义的?