【发布时间】:2017-07-04 19:09:45
【问题描述】:
给定一组列名及其类型,目标是
实例化一个表和对应的映射类。
与此处发布的问题有关:Dynamic Class Creation in SQLAlchemy。
到目前为止,我有以下内容:
table = Table(tbl,
metadata,
*(Column(col, ctype, primary_key=pk, index=idx) for col, ctype, pk, idx in zip(attrs, types, primary_keys, indexes))
)
这将创建表格对象。现在我需要创建相应的类。
mydict={'__tablename__':tbl}
cls = type(cls_name, (Base,), mydict)
这给了我以下错误:
ArgumentError: Mapper Mapper|persons_with_coord|t_persons_w_coord 无法为映射表组装任何主键列
我的问题是如何将主键指定为类创建的一部分。 创建类后,我是否需要按如下方式调用映射器:
mapper(cls, table)
【问题讨论】:
标签: python sqlalchemy metaprogramming metaclass declarative