我有一個名爲Post
的模型,它有一個名爲is_answer
的布爾字段。如果Post
的is_answer
字段爲真,這是一個「問題」;否則,這是一個「答案」。我想創建下面的問答關係:如何在Flask-SQLAlchemy中創建一個自引用的一對多關係?
一個「問題」可能有很多「答案」,但是一個「答案」只有一個「問題」。由於「問題」和「答案」基本上都是Post
,我認爲這種關係必須是自我參照。
這裏是我試過:
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True)
is_question = db.Column(db.Boolean)
post_id = db.Column(db.Integer, db.ForeignKey('posts.id'))
question = db.relationship('Post', backref=db.backref('answer', lazy='dynamic'), uselist=False, lazy='dynamic')
的錯誤是:
ArgumentError: Post.question and back-reference Post.answer are both of the same direction symbol('ONETOMANY'). Did you mean to set remote_side on the many-to-one side ?