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

8 投票
1 回答
5503 浏览
提问于 2025-04-17 13:54

假设我在一个模块里有一个用户(User)模型。

class User(Model):
    id = Column(Integer, primary_key=True)

然后,我想在另一个模块里的帖子(Post)模型中,添加一个动态加载的多对一关系,指向用户模型。而且,我不想让用户模型的定义被这个其他模块的关系弄得很复杂。

有没有比从帖子模型外部给用户类添加一个字段更干净的方法呢?像这样?

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

User.posts = relationship('Post', backref='user', lazy='dynamic')

谢谢

1 个回答

15

好吧,你可以在Post模型里面定义它(见下面的代码)

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

撰写回答