mdo*_*dob 7 python sqlalchemy class relationship relation
让我们有一个类X和Y以及它们之间的关系x2y和y2x.从class_mapper(Class).iterate_properties迭代器我们可以得到所有类的属性.所以x2y和y2x是RelationshipProperty,我希望得到的是关系的远端一侧的对象的类或类名.
我已经尝试过解决方案了.我发现x2y.remote_side[0].table.name,制作了一个table_map,它将一个表名映射到一个类,它适用于一对多和一对一.如果我将它用于多对多,则表名是关联表.
关于如何获得远程边课的任何提示?
zzz*_*eek 20
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3615 次 |
| 最近记录: |