Python 在SQLAlchemy中定义多对多而无需外键

Python 在SQLAlchemy中定义多对多而无需外键,python,sqlalchemy,Python,Sqlalchemy,我有要建模的现有数据。其实质是: class Investor(db.Model): id = db.Column(id, primary_key=True) investments = db.relationship('Investments', backref='investor') class Round(db.Model): id = db.Column('id', primary_key=True) investments = db.Table( '

我有要建模的现有数据。其实质是:

class Investor(db.Model):
    id = db.Column(id, primary_key=True)
    investments = db.relationship('Investments', backref='investor')

class Round(db.Model):
    id = db.Column('id', primary_key=True)

investments = db.Table(
    'investments',
    db.Column('investor_id', db.ForeignKey('investor.id')),
    db.Column('round_id', db.ForeignKey('round.id')),
)
现在,每次我尝试执行这个小模型时,都会出现以下错误: 表达式“Investments”找不到名称


我明白,投资需要是一个类,但我尝试用db.model创建一个虚拟类,但它并没有真正起作用。在那个版本中,我在请求主联接或映射程序时遇到问题。我很困惑,一点指导会很有帮助。

如果投资者和轮之间存在多对多关系,您可以如下定义模型:

class Investor(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    rounds = db.relationship('Round', secondary=investments, backref='investor')

class Round(db.Model):
    id = db.Column(db.Integer, primary_key=True)

investments = db.Table(
    'investments',
    db.Column('investor_id', db.Integer, db.ForeignKey('investor.id')),
    db.Column('round_id', db.Integer, db.ForeignKey('round.id')))