从多对多中删除所选项目时,循环会跳过第二个项目
Loop skips every second item when removing selected items from many to many
在我的应用程序中,我试图通过循环删除多对多记录:
org = current_user.Organization
for item in org.items:
if item.id in remove_ids:
org.items.remove(item)
db.session.commit()
但是,它会跳过第二个项目。由于列表在循环中被修改。我该如何正确解决?
在循环中从容器中移除元素通常不起作用。
我会建议以下内容:
org = current_user.Organization
org.items = [item for item in org.items if item.id not in remove_ids]
db.session.commit()
在我的应用程序中,我试图通过循环删除多对多记录:
org = current_user.Organization
for item in org.items:
if item.id in remove_ids:
org.items.remove(item)
db.session.commit()
但是,它会跳过第二个项目。由于列表在循环中被修改。我该如何正确解决?
在循环中从容器中移除元素通常不起作用。
我会建议以下内容:
org = current_user.Organization
org.items = [item for item in org.items if item.id not in remove_ids]
db.session.commit()