我有兩個非常簡單的模型。在我的Post
模型中,應該有User
表中的兩個關係。一個是郵件的所有者,另一個是郵件的最後編輯。它們可以是不同的值,但都是指相同的User
表。sqlalchemy在關係上創建backref時出錯
我的模型建立這樣
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
模型中僞造鑰匙?
這fixies的映射問題,但他仍然沒有工作關係。 – muthan 2014-11-01 23:35:49
嗯 - 它不工作,因爲Post類缺少主鍵,但關係正常。 – Doobeh 2014-11-02 00:35:34
啊,沒關係,這是我的失敗。現在修復我的答案,以便我們有兩種解決方案。很高興知道它也適用於這種方式。 – muthan 2014-11-02 01:00:41