文章内容
2019/9/19 18:17:19,作 者: 黄兵
Did you mean to set remote_side on the many-to-one side ?
最近在使用SQLAlchemy建库的时候,出现如下错误:
sqlalchemy.exc.ArgumentError: LeftMenu.left_menu_id and back-reference LeftMenu.left_menu are both of the same direction symbol('ONETOMANY'). Did you mean to set remote_side on the many-to-one side ?
出现问题的原因:
没有在另外一端标注remote_side。
解决方案:
# 左边菜单
class LeftMenu(db.Model):
__tablename__ = 'left_menu'
id = db.Column(db.Integer, primary_key=True)
icon = db.Column(db.String(128))
menu_text = db.Column(db.String(16))
URI = db.Column(db.String(256))
remarks = db.Column(db.String(1024))
time_created = db.Column(db.DateTime(timezone=True), server_default=func.now())
parent_id = db.Column(db.Integer, db.ForeignKey('left_menu.id'))
level = db.Column(db.Integer)
rank = db.Column(db.Integer, doc='显示顺序')
permission = db.Column(db.Integer, doc='权限')
left_menu_id = db.relationship('LeftMenu', backref='left_menu', lazy='select', remote_side=[id])添加remote_side问题解决。
参考资料:
1、SQLAlchemy One-to-Many relationship on single table inheritance - declarative
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Did you mean to set remote_side on the many-to-one side ?
评论列表