我正在尝试找到解决 SQLAlchemy 的方法。我正在尝试找出如何通过表实例访问 Column 对象。
我目前使用 Peewee 作为 ORM 编写了我的应用程序,我可以执行以下操作:
In [15]:from db.models.vehicle import Vehicle
In [16]: Vehicle.code
Out[16]: <db.fields.RsCharField at 0x7fd93e53e780>
In [17]: Vehicle.code.default
Out[17]: ''
或者通过实际实例:
In [10]: a = Vehicle()
In [11]: a._meta.fields["code"]
Out[11]: <db.fields.RsCharField at 0x7f08ce49da90>
当我在 SQLAlchemy 中执行相同操作时,我得到一个:
In [11]: Vehicle.code
Out[11]: <sqlalchemy.orm.attributes.InstrumentedAttribute at 0x7fd9105f2938>
但我想要拥有实际的列类型,因为我扩展了列类型以具有我想要访问的额外属性:
class RsColumn(Column):
def __init__(self, *args, ui_group=None, ui_sequence=None, **kwargs):
self.ui_group = ui_group
self.ui_sequence = ui_sequence
super().__init__(*args, **kwargs)
(所以在这种情况下,我想访问我在表声明中使用的 RsColumn 对象)
最佳答案
Vehicle.__table__.c.code.type
您可以在 SQLAlchemy Documentation: Accessing Tables and Columns 中阅读相关内容
关于python - SQLALchemy 访问列对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41097667/