2017-04-13 69 views
0

我有我想要建模的现有数据。它的本质:在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(
    'investments', 
    db.Column('investor_id', db.ForeignKey('investor.id')), 
    db.Column('round_id', db.ForeignKey('round.id')), 
) 

现在,每次我试图执行这个小模型,我收到以下错误时间: 表达“投资”未能找到一个名字

我明白,投资,需要有一个类,但我已经尝试使用db.model创建一个虚拟类,但它并没有真正起作用。在那个版本中,我遇到了询问主要连接或映射器的问题。我很困惑,一点指导会大大帮助。

回答

1

如果多对多的关系是InvestorRound之间,您可以按如下定义模型:

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')))