文章内容

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 ?

分享到:

发表评论

评论列表