다른 두 테이블에 대한 참조를 보유하는 접합 테이블이 있습니다. 내가 원하는 건 접합부 테이블에서이 참조를 제거하는 것입니다. 접합점에서 우리는 하나의 비행기에 대한 geven 타입으로부터 하나 이상의 아이템을 가질 수 있습니다. 문제는 주어진 항목을 제거 할 때 같은 유형의 모든 항목이 이동된다는 것입니다.sqlalchemy : 접합 테이블에서 항목 제거
어떻게 접합점 테이블에서 하나의 항목 만 제거 할 수 있습니까?
내 데이터베이스 구조는 다음과 같습니다. 새로운 항목을 추가
class Item(object):
pass
class Plane(object):
pass
class PlaneItem(object):
pass
planeMeta = Table("planes",
Column("plane_id", Integer, primary_key = True)
)
itemMeta = Table("items",
Column("item_id", Integer, primary_key = True)
)
planeItem = Table("planes_items",
Column("planes_items_id", Integer, primary_key = True)
Column("plane_id", Integer, ForeinKey("planes.plane_id"))
Column("item_id", Integer, ForeinKey("items.item_id"))
)
mapper(Plane, planeMeta, properties={
"items": relationship(Item, planeItem, lazy="dynamic")
})
.
plane = dbSess.query(Plane).filter(Plane.plane_id == my_plane_id).one()
newItem = dbSess.query(Item).filter(Item.item_id == my_new_item).one()
plane.items.append(newItem)
항목 제거
itemForRemoving = myPlane.items.filter(item_id==4)
myPlane.items.remove(itemForRemoving)
네, 맞습니다. 내 매퍼에서 물건을 엉망으로 만들었 어. – bozhidarc