加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:45:29 所属栏目:MsSql教程 来源:网络整理
导读:让我们有一个类X和Y以及它们之间的关系x2y和y2x. 从class_mapper(Class).iterate_properties迭代器我们可以得到所有类的属性. 所以x2y和y2x是RelationshipProperty,我希望得到的是关系远端的对象的类或类名. 我已经尝试过解决方案了. 我找到了x2y.remote_side
让我们有一个类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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读