我有各种模型链接在SQL炼金术 http://en.wikipedia.org/wiki/SQLAlchemy(有很多,属于,等等)。有没有办法找到给定实例的相关模型?
就像是:
usersModelInstance.getRelatedTables() // This should provide an array or something with the related tables of users (orders, logins, posts, etc.).
我不太确定你想要什么——表列表还是映射类列表?
无论哪种情况,首先为您的映射构建属性列表object:
# Import sqlalchemy so we can use it
import sqlalchemy as sa
# Rename the OP's object to `obj`
obj = usersModelInstance
# Build a list of only relationship properties
relation_properties = filter(
lambda p: isinstance(p, sa.orm.properties.RelationshipProperty),
sa.orm.object_mapper(obj).iterate_properties
)
请注意,您可以使用sa.orm.class_mapper(cls)
如果你不这样做,则可以运行
当前拥有一个实体的句柄instance,但只是一个映射类。
现在,在第一种情况下,您想要相关的列表tables, do:
related_tables = [prop.target for prop in relation_properties]
在第二种情况下,您可能需要相关映射类的列表,
做:
related_classes = [prop.mapper.class_ for prop in relation_properties]
希望这可以帮助您入门。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)