2017-04-13 1 views
0

Ich habe vorhandene Daten, die ich modellieren möchte. Sein im Wesentlichen:Definieren Sie viele zu viele ohne einen Fremdschlüssel in 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')), 
) 

Nun versuche jedes Mal, wenn ich dieses kleine Modell ausführen, ich die folgende Fehlermeldung erhalten: Ausdruck ‚Investitionen‘ failed einen Namen

Ich verstehe, dass die Investitionen zu finden, sein muss eine Klasse, aber ich habe versucht, eine Dummy-Klasse mit db.model zu machen, und es hat nicht wirklich funktioniert. In dieser Version bekomme ich Probleme mit der Frage nach einem primären Join oder einem Mapper. Ich bin ziemlich verwirrt, und ein wenig Anleitung würde sehr helfen.

Antwort

1

Wenn die viele zu viele Beziehung zwischen Investor und Round ist, können Sie das Modell wie folgt definieren:

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