0
でレコードを挿入します。フラスコSQLAlchemyの私は3つのテーブル持っている複数の外部キー
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')
を私は成功し、ユーザーテーブルのデータを挿入することができます使用して:
user.successes.extend(success_objects_list)
db.session.add(user)
db.session.add_all(success_objects_list)
db.session.commit()
をこれがforeign-の世話をしますキーuser_id
どのように私は同時に裁判表内のデータのデータを挿入し、第二外国キーtrial_idの世話をしますか?
なぜ同じことをすることができませんか? – univerio
@univerioはレコードを2回挿入しませんか?一度私は既にuser.successesを拡張することによってやった。 – user3787291
試しましたか? 'user.successes'を拡張することによって' Success'インスタンスをセッションに追加し、それらを 'User'インスタンスに関連づけます。 'trial.successes'を拡張することによって、' Success'インスタンスをセッションに追加し、それらを 'Trials'インスタンスに関連付けることができます。しかし、セッションにすでに存在しているので、二度追加されることはありません。 – univerio