在 SQLAlchemy 中更新现有子对象并将新子对象附加到父对象的有效方法是什么?

时间:2021-05-04 10:53:00

标签: sqlalchemy flask-sqlalchemy

更新现有子模型并将新子模型添加到父模型并删除子模型的有效方法是什么?

我只是

child_inputs = [{'child_id':1, 'name': 'test1'},{'name': 'test2'}]
parent = Parent.query.get(id)

// remove child model if not exists in child_inputs like child_id 2 appended to Parent model

for inputs in child_inputs:
    if 'child_id' in inputs:
        child = Child.query.get(inputs['child_id'])
        child.name = inputs['name']
    else:
        child = Child(**inputs)
    
    parent.append(child)

db.session.commit()

1 个答案:

答案 0 :(得分:0)

我认为 Merging 用法的文档正是您所需要的。

您需要确保“child_id”实际上是主键字段的名称,或者在通过 merge 处理之前只是重命名该键。