繁体   English   中英

如何从SQLAlchemy类和自己的类继承

[英]How to inherit from SQLAlchemy classes and own classes

我使用SQLAlchemy进行类继承时遇到问题。

接下来的分钟 该示例显示了我想做什么以及我的问题是什么:

class Foo(object):
    bar = 'hello world'

class Car(Base, Foo):
    id = Column(Integer, primary_key=True)
    color = Column(String(50))

if __name__ == '__main__':
    # 'bar' attribute is available on new class instance
    my_car = Car()
    print my_car.bar # "hello world"

    # 'bar' attribute is not available on query init
    db_session = init_db()
    my_car = db_session.query(Car).first()
    print my_car.bar # Error

我有一个Car类,它继承自SQLAlchemy的Base类。 除此之外, Car类继承自Foo类。 在此示例中, Foo类仅包含一个属性bar

当通过SQLAlchemy的查询功能实例化Car实例时,我无法访问bar属性。 SQLAlchemy如何实例化类,对我来说有什么解决方法吗?

我正在使用SQLAlchemy 0.7。

您可以将cls参数用于declarative_base以将默认object替换为所有类的基础:

Base = declarative_base(cls=MyBaseClass)

有关更多信息和选项,请阅读文档的“混合和自定义基类”部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM