Python 在提交会话之前获取插入的密钥
考虑到Python 在提交会话之前获取插入的密钥,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,考虑到父id必须包含在子表中,我想将插入会话中的父和子表中。在我创建child对象的那一刻,parent.id是None 如何实现这一点?您可以使用刷新对数据库的更改,从而更新主键字段: class Parent(db.Model): id = db.Column(db.Integer, primary_key=True) class Child(db.Model): id = db.Column(db.Integer, primary_key=True) parent
父id
必须包含在子表中,我想将插入会话中的父和子表中。在我创建child
对象的那一刻,parent.id
是None
如何实现这一点?您可以使用刷新对数据库的更改,从而更新主键字段:
class Parent(db.Model):
id = db.Column(db.Integer, primary_key=True)
class Child(db.Model):
id = db.Column(db.Integer, primary_key=True)
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
parent = Parent()
db.session.add(parent)
child = Child()
child.parent_id = parent.id
db.session.add(child)
db.session.commit()
parent = Parent()
db.session.add(parent)
db.session.flush()
print parent.id # after flush(), parent object would be automatically
# assigned with a unique primary key to its id field
child = Child()
child.parent_id = parent.id
db.session.add(child)