Python Sqlalchemy关联表覆盖数据

Python Sqlalchemy关联表覆盖数据,python,python-3.x,flask,flask-sqlalchemy,flask-marshmallow,Python,Python 3.x,Flask,Flask Sqlalchemy,Flask Marshmallow,我已经创建了一个api,用户将向我发送用户id和分支id/分支id,我的api将在我的关联表中插入记录。 例如 我的职位要求是 { "branches" : [2,3,4], "user_id" : 1 } { "branches" : [1], "user_id" : 1 } 结果是 # user_id branch_id 1 1 2 2 1 3

我已经创建了一个api,用户将向我发送用户id和分支id/分支id,我的api将在我的关联表中插入记录。 例如 我的职位要求是

{

    "branches" :  [2,3,4],
    "user_id" : 1

}
{

    "branches" :  [1],
    "user_id" : 1

}
结果是

#   user_id branch_id
1   1   2
2   1   3
3   1   4
我的下一个帖子是

{

    "branches" :  [2,3,4],
    "user_id" : 1

}
{

    "branches" :  [1],
    "user_id" : 1

}
这里我的关联表被覆盖了

#   user_id branch_id
1   1   1
这是我的代码片段:

def post(self):       
    branch_ids = request.json['branches']
    user_id = request.json['user_id'] 
    if type(branch_ids)!= list :
        branch_ids = [branch_ids]
    branches = db.session.query(Branch).filter(Branch.id.in_(branch_ids)).all()
    if len(branch_ids) != len(branches):
        return "please select valid branches"
    user = db.session.query(User).filter(User.id == user_id).first()
    print(user)
    if user != None :
        user.branches = [branch for branch in branches]
        db.session.commit()
    else:
        return "user not found"
    return "done"

我想将分支分配给用户,还想从用户中删除分支。

我没有附加到我的表中

for branch in branches_id:
    user.branches.append(branch)