【发布时间】:2014-12-28 20:35:17
【问题描述】:
我有两个非常简单的模型。在我的Post 模型中,User 表中应该有两个关系。一个用于帖子的所有者,一个用于帖子的最后一位编辑。它们可以是不同的值,但都引用同一个User 表。
我的模型是这样设置的
class Post(Base):
last_editor_id = Column(BigInteger, ForeignKey('users.id'), nullable=True)
last_editor = relationship('User', backref='posts', foreign_keys=[last_editor_id])
owner_id = Column(BigInteger, ForeignKey('users.id'), nullable=False, index=True)
owner = relationship('User', backref='posts', foreign_keys=[owner_id])
class User(Base):
'''This represents a user on the site'''
__tablename__ = 'users'
id = Column(BigInteger, primary_key=True, unique=True)
name = Column(BigInteger, nullable=False)
当我尝试创建这些模型时,我收到以下错误
sqlalchemy.exc.ArgumentError: Error creating backref 'posts' on relationship 'Post.owner': property of that name exists on mapper 'Mapper|User|users'
如何更正此问题,以便在 Post 模型中维护两个外键?
【问题讨论】:
标签: python sqlalchemy