Flask Таблица ассоциаций sqlalchemy перезаписывает данные - PullRequest
1 голос
/ 01 августа 2020

Я создал api, где пользователь пришлет мне user_id и branch_id / branch_id, а мой api будет вставлять записи в мою таблицу ассоциаций. например, мой почтовый запрос

{

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

}

Результат:

#   user_id branch_id
1   1   2
2   1   3
3   1   4

Мой следующий почтовый запрос

{

    "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"

Я хочу назначать ветки пользователям, а также хочу удалить ветки у пользователей.

1 Ответ

1 голос
/ 01 августа 2020

Я не добавлял в свою таблицу

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