python - tutorial - Obtener la clave insertada antes de la sesión de confirmación
sqlalchemy delete object (1)
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()
Quiero INSERTAR en tablas parent
e child
dentro de una sesión, considerando que parent_id
debe incluirse en la tabla child
. En el momento en que creo el objeto child
, parent.id
es None .
¿Cómo puedo lograr eso?
Puede usar flush () para enjuagar los cambios en la base de datos y así tener su campo de clave primaria actualizado:
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)