Ich habe 3 Tabellen:Flask-SQLAlchemy Einsatz Aufzeichnungen mit mehreren Fremdschlüssel
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
successes = db.relationship('Success', backref='user', lazy='dynamic')
class Success(db.Model):
id = db.Column(db.Integer, primary_key=True)
package = db.Column(db.String)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
trial_id = db.Column(db.Integer, db.ForeignKey('trials.id'))
class Trials(db.Model):
id = db.Column(db.Integer, primary_key=True)
description = db.Column(db.String)
successes = db.relationship('Success', backref='attempt', lazy='dynamic')
ich die Daten in Erfolg einsetzen können und Benutzertabelle:
user.successes.extend(success_objects_list)
db.session.add(user)
db.session.add_all(success_objects_list)
db.session.commit()
Diese kümmert sich um die außen- Schlüssel user_id.
Wie füge ich Daten gleichzeitig Daten in Test Tabelle und kümmern sich um den zweiten Fremd-Key trial_id ??
Warum können Sie nicht genau dasselbe tun? – univerio
@univerio würde das nicht Datensätze 2 mal einfügen? So wie ich es schon getan habe, indem ich die user.successes erweitert habe. – user3787291
Haben Sie es versucht? Indem Sie 'user.successes 'erweitern, fügen Sie der Sitzung die' Success'-Instanzen hinzu und ordnen sie der' User'-Instanz zu. Durch Erweitern von 'trial.successes' fügen Sie der Sitzung die 'Success'-Instanzen hinzu und verknüpfen sie mit der' Trials'-Instanz, aber weil sie bereits in der Sitzung sind, werden sie nicht zweimal hinzugefügt. – univerio