SQLAlchemy自定义属性

时间:2011-04-15 04:24:01

标签: python sql properties sqlalchemy

我有一个名为“Projects”的表,它有一个映射列“project”。我想要做的是在我的映射类上定义我自己的属性,称为“project”,在返回之前对项目值执行一些操作。当我尝试引用行值时,这当然会创建一个无限循环。所以我的问题是是否有一种方法可以设置我的表映射器以使用项目列的别名,也许是_project。有没有简单的方法呢?

我最终自己解决了这个问题。您可以在调用orm.mapper时指定备用名称:

orm.mapper(MappedClass, table, properties={'_project': table.c.project})

1 个答案:

答案 0 :(得分:2)

您是否检查过Sqlalchemy的同义词功能

http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html#defining-synonyms http://www.sqlalchemy.org/docs/05/mappers.html#synonyms

我经常使用它为属性提供适当的setter / getter公共API 具有相当复杂的底层数据结构,或者需要额外的功能/验证或其他任何内容。