python - 由于一个或多个映射器初始化失败,无法在 SQLAlchemy 中创建记录

标签 python sql sqlalchemy flask-sqlalchemy

我有一个模型文件(简化版)

repo 只有一个用户,一个用户可以有多个 repo 。

class Repo(Base):
    __tablename__ = "repos"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(512), unique=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    user = db.relationship("User", back_populates="users")

class User(Base):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(200), unique=True)
    repos = db.relationship("User", back_populates="repos")

当我尝试插入记录时出现错误:

One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: Mapper 'Mapper|User|users' has no property 'users'

如何修复我的模型?

最佳答案

back_populates 对于 user 关系应该是 repos,对于 repos 关系应该是 user

class Repo(Base):
    __tablename__ = "repos"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(512), unique=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    user = db.relationship("User", back_populates="repos")

class User(Base):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(200), unique=True)
    repos = db.relationship("Repo", back_populates="user")

关于python - 由于一个或多个映射器初始化失败,无法在 SQLAlchemy 中创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34720736/

相关文章:

python - 比较 pandas 映射和合并

python - 未达到 Airflow 传感器超时

python - 使用单个 os.mkdir 函数生成超过 1 个目录 (Python)

sql - T-SQL RETURN 不起作用

python - Sqlalchemy 一对多插入

NetLogo 的 Python 或 JavaScript 脚本?

mysql - 内部连接 ​​mySQL

mysql - 在多个 SQL 语句中使用 Count() 并使用 join 连接它们

python - 如何使用 SQLAlchemy/Mysql 存储 3D 图形 (x, y, z) 数据?

postgresql - SQLAlchemy postgresql.ARRAY 大小