我有一个名为"Projects"的表,其中有一个映射列"project"。我想要能够做的是在我的映射类上定义我自己的属性,称为"project",在返回它之前对项目值执行一些操作。当我试图引用行值时,这当然会创建一个无限循环。因此,我的问题是,是否有一种方法可以设置我的表映射器,以便为项目列使用别名,例如_project。有什么简单的方法吗?
最后我自己算出来了。您可以在调用orm.mapper: 时指定一个替代名称。orm.mapper(MappedClass, table, properties={'_project': table.c.project})
您检查过Sqlalchemy的同义词特性了吗
http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html defining-synonymshttp://www.sqlalchemy.org/docs/05/mappers.html同义词
?
我经常使用它来为属性提供适当的setter/getter公共API有一个相当复杂的底层数据结构,或者在需要额外的功能/验证或其他任何东西的情况下。