sqlalchemy.exc.InvalidRequestError:一个或多个映射器未能初始化 - 无法继续初始化其他映射器

10 python sqlalchemy

当我尝试访问该页面时发生此错误。创建表时没有出现错误,但似乎仍然存在问题。

模型是这样的:

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    sell_items = db.relationship('Item', backref='user')

class Item(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    item_name = db.Column(db.String(64), index=True)
    item_image = db.Column(db.String(200), index=True)
    price = db.Column(db.Float(10), index=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', backref='sell_items')
Run Code Online (Sandbox Code Playgroud)

整个错误信息是这样的

Triggering mapper: 'Mapper|User|user'. Original exception was: Error creating backref 'user' on relationship 'User.sell_items': property of that name exists on mapper 'Mapper|Item|item'
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我想做的是参考username谁卖这个项目,但我不能。模型之间的关系存在问题。

Dan*_*iel 11

当您使用backref向后关系是自动创建的,所以它应该只用于关系的一侧。你的情况,你可以删除sell_itemsUser模型和User模式将自动从关系Item

要声明双方的关系(如果您想自定义其名称,例如,使用back_populates='name_of_relationship_on_other_model'.