をコミットするには、私は多くの「アイテムの関係にして、マイバスケットを定義した方法です後SQLAlchemyの、多くのリストへの1つは、常に1つのオブジェクトにドロップします。いくつかのために、ここ
class Basket(Base):
__tablename__ = 'basket'
id = Column(Integer, primary_key=True)
items_id = Column(Integer, ForeignKey('item.id'))
items = relationship("Item", uselist=True)
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
name = Column(String)
しかし、私はそれをテストraison、セッションコミット後、私のbasket.itemsは1つのアイテムしか保持しません。もう少し追加してからもう一度コミットすれば、私のリストは1つにとどまります。
なぜか分かりません。ここに私のテストがあります:
>>> basket = Basket()
>>> s = session()
>>> s.add(basket)
>>> banana = Item(name="banana")
>>> orange = Item(name="orange")
>>> s.add(banana)
>>> s.add(orange)
>>> s.commit()
>>> basket.items.append(banana)
>>> basket.items.append(orange)
>>> basket.items
[<database.declarative.Item object at 0x10e4c7790>, <database.declarative.Item object at 0x10e4c7810>]
>>> s.commit()
>>> basket.items
[<database.declarative.Item object at 0x10e4c7810>]
はい、それは動作します。今あなたはそれを言った、それは明らかです。私のエラーは、コントロールレイヤーがクラス側で動作していると思って、そのケースが発生した場合に例外をスローするように、アイテムリストに一度に複数のアイテムを追加することは決してありませんでした。変更と修正は、コミットが完了したときに実行されます。ご協力ありがとうございました ! –