update tutorial one delete datatypes python flask sqlalchemy flask-sqlalchemy

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)