저는 사용자가 동영상 아래에 댓글을 달거나 다른 사람의 댓글에 댓글을 달 수있는 동영상 공유 사이트에서 작업하고 있습니다. 다음은 단순화 된 사용자 모델 및 주석 모델입니다.
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(MAX_USERNAME), unique=True)
comments = db.relationship('Comment', backref='replier', lazy='dynamic')
replied = db.relationship('Comment', backref='repliee', lazy='dynamic')
class Comment(db.Model):
__tablename__ = 'comments'
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.Text)
replier_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
repliee_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
video_id = db.Column(db.Integer, db.ForeignKey('videos.id'), index=True)
오류 메시지가 표시됩니다.
User.comments 관계에서 상위 / 하위 테이블 간의 조인 조건을 확인할 수 없습니다. 테이블을 연결하는 외래 키 경로가 여러 개 있습니다. 상위 테이블에 대한 외래 키 참조를 포함하는 것으로 계산되어야하는 열 목록을 제공하여 'foreign_keys'인수를 지정하십시오.
아무도 도울 수 있습니까? flask 및 sqlalchemy를 처음 사용합니다.
comments
와 replied
관계에서 외래 키 열을 모르는 Comment
둘 다 있기 때문에, 사용에 replier_id
과 repliee_id
를 참조하십시오 users.id
.
따라서 및에 적절한 foreign_keys
인수를 추가하십시오 .comments
replied
comments = db.relationship('Comment', backref='replier', lazy='dynamic', foreign_keys='[Comment.replier_id]')
replied = db.relationship('Comment', backref='repliee', lazy='dynamic', foreign_keys='[Comment.repliee_id]')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다