如何在没有数据库查询的情况下查找sql​​alchemy远程端对象的类或类名?

前端之家收集整理的这篇文章主要介绍了如何在没有数据库查询的情况下查找sql​​alchemy远程端对象的类或类名?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们有一个类X和Y以及它们之间的关系x2y和y2x.
从class_mapper(Class).iterate_properties迭代器我们可以得到所有类的属性.
所以x2y和y2x是RelationshipProperty,我希望得到的是关系远端的对象的类或类名.

我已经尝试过解决方案了.
我找到了x2y.remote_side [0] .table.name,创建了一个table_map,它将一个表名映射到一个类,它适用于一对多和一对一.如果我将它用于多对多,则表名是关联表.

关于如何获得远程边课的任何提示

解决方法

X.x2y.property.mapper.class_

relatonshipproperty最终会获得类映射属性文档,就像mapper现在一样.

编辑.这是一个测试,它说明了上面从“X”返回“Y”,并且没有反射不会创建关系,所以应该没有效果

from sqlalchemy import Column,Integer,ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
class X(Base):
    __tablename__ = 'x'
    id = Column(Integer,primary_key=True)
    x2y = relationship("Y")

class Y(Base):
    __tablename__ = 'y'
    id = Column(Integer,primary_key=True)
    x_id = Column(Integer,ForeignKey("x.id"))

assert X.x2y.property.mapper.class_ is Y

猜你在找的MsSQL相关文章