SQLAlchemy:动态加载到另一个模块的反向引用

Art*_*ler 4 python sqlalchemy

假设我在一个模块中有一个User模型.

class User(Model):
    id = Column(Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

然后我想从另一个模块中的Post模型向User添加动态加载的多对一关系.此外,我不想用来自其他模块的关系"污染"用户的模型定义.

除了从Post模型外部向User类添加字段之外,还有更简洁的方法吗?

class Post(Model):
    user_id = Column(Integer, ForeignKey('user.id'))

User.posts = relationship('Post', backref='user', lazy='dynamic')
Run Code Online (Sandbox Code Playgroud)

谢谢

van*_*van 11

好吧,你可以在Post模型中定义它(见下文)

class Post(Model):
    user_id = Column(Integer, ForeignKey('user.id'))
    user = relationship('User', backref=backref('posts', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)

  • 存在巨大差异:在一种情况下,*懒惰*适用于关系的一侧,而在另一种情况下 - 适用于另一侧. (3认同)