插入多对多记录时sqlalchemy UnmappedColumnError

时间:2018-02-18 14:03:31

标签: python sqlalchemy many-to-many flask-sqlalchemy

我在flask-sqlalchemy模型中定义了以下多对多关系:

ng build --prod

和module_course表对象定义为:

Class Course 
modules = db.relationship('Module', secondary=course_modules,
    primaryjoin=(course_modules.c.course_id == id),  
    secondaryjoin=(course_modules.c.module_id == id),
    backref=db.backref('courses', lazy='dynamic'), lazy='dynamic') 

当执行以下操作在此表中创建记录时,我得到一个sqlalchemy.orm.exc.UnmappedColumnError:

course_modules=db.Table('course_modules',
db.Column('course_id', db.Integer, db.ForeignKey('course.id')),
db.Column('module_id', db.Integer, db.ForeignKey('module.id'))
    )

当我从db关系中删除 primaryjoin secondaryjoin 行并使用此方法时,我没有遇到相同的错误,并且插入了数据。

为什么包括主要和次要连接条件导致插入中断?是否有另一种方法可以将数据插入我应该使用的多对多关系中?

1 个答案:

答案 0 :(得分:-1)

这两种关系中的

id均指向Class.id。您应该引用正确的id列。