我有两个模型,类父母和类Child,我想更新这些类的属性,假设,我们有: parent_name =“P1”,child_name = {“c1”,“c2”,“c3”}, 更新后,我们将拥有,parent_name =“P2”,child_name = {“c1”,“c2”,“c3”,“c4”,“c5”
我已经研究过了,没有找到解决方案,给出了建议
class Parent(db.Model):
__tablename__ = 'parent'
id = db.Column(db.Integer, primary_key=True)
children = relationship("Child" backref='parent', passive_deletes=True)
parent_name = db.Column(db.String(64))
class Child(Base):
__tablename__ = 'child'
id = db.Column(db.Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id', ondelete='CASCADE'))
child_name = db.Column(db.String(64))
答案 0 :(得分:0)
parent = session.query(Parent).filter(Parent.name='P1').one()
parent.parent_name = 'P2'
parent.children.extend([Child(child_name='c4'), Child(childe_name='c5')])
session.commit()
首先从会话中查询父级。然后编辑它,它将保留在会话中,这样当您提交时,会话中的更改将传播到数据库。