我在SQLAlchemy中链接了各种模型(有很多,属于等等)。有没有找到相关模型的方法?
类似的东西:
usersModelInstance.getRelatedTables() // This should provide an array or something with the related tables of users (orders, logins, posts, etc.).
答案 0 :(得分:8)
我不确定你想要什么 - 表格列表或映射类列表?
在任何一种情况下,首先要为映射的对象构建一个属性列表:
# 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)
功能
目前有一个实体实例的句柄,但只有一个映射类。
现在,在第一种需要相关表列表的情况下,请执行以下操作:
related_tables = [prop.target for prop in relation_properties]
在第二种情况下,您可能需要相关映射类的列表, 做:
related_classes = [prop.mapper.class_ for prop in relation_properties]
希望这可以让你开始。