【问题标题】:SQLAlchemy One to Many relationship mapping/joining errorSQLAlchemy 一对多关系映射/连接错误
【发布时间】:2020-09-18 12:22:53
【问题描述】:

我想在演讲者和唱片之间建立关系。 一个演讲者可以有多个记录

但显示以下错误:

sqlalchemy.exc.InvalidRequestError: 类 没有名为“speaker_id”的映射列

扬声器型号:

class Speaker(Base):
    __tablename__ = 'speakers'
    id       = db.Column(db.Integer,     primary_key=True)
    cin      = db.Column(db.String(8),  unique = True)
    nom      = db.Column(db.String(64))
    prenom   = db.Column(db.String(64))
    adresse  = db.Column(db.String(120))
    datedn   = db.Column(db.String(20)) 
    genre    = db.Column(db.String(64))
    phone    = db.Column(db.Boolean, default=False)
    profession = db.Column(db.String(120))
    records  = db.relationship('Record', backref="owner", primaryjoin="Speaker.id==Record.speaker_id")
    created  = db.Column(db.DateTime, default=datetime.datetime.utcnow)

唱片模型:

class Record(Base):
    __tablename__ = 'record'
    id       = db.Column(db.Integer, primary_key=True)
    path     = db.Column(db.String(500))
    created  = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    speaker_id = db.column(db.Integer, db.ForeignKey('speakers.id'))

我尝试过没有primaryjoin 的关系,但我遇到了这个错误:

sqlalchemy.exc.NoForeignKeysError: 无法确定连接条件 在关系 Speaker.records 上的父/子表之间 - 那里 没有链接这些表的外键。确保引用 列与 ForeignKey 或 ForeignKeyConstraint 相关联,或 指定一个“primaryjoin”表达式。

我在这里错过了什么?

【问题讨论】:

    标签: python flask flask-sqlalchemy


    【解决方案1】:

    这有点错字,但时不时会弹出:“列”中的 c 必须在 Record 类的第 6 行(在扬声器 ID 行)大写。

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多