Flask-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()

这将处理外键user_id

如何同时在试用表中插入数据并处理第二个外键trial_id

你可以

trial.successes做完全相同的事情,它应该可以工作。通过扩展user.successes,您可以将Success实例添加到会话中,并将它们与User实例关联。通过扩展 trial.successes ,您可以将Success实例添加到会话中并将它们与Trials实例关联,但由于它们已在会话中,因此不会添加两次。

最新更新