文章内容
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 ?
评论列表