Я пытаюсь обновить порядок существующего объекта при использовании списка заказов SQLAlchemy. Вот пример модели, используемой в SQLAlchemy docs :
class Slide(Base):
__tablename__ = 'slide'
id = Column(Integer, primary_key=True)
name = Column(String)
bullets = relationship("Bullet", order_by="Bullet.position",
collection_class=ordering_list('position'))
class Bullet(Base):
__tablename__ = 'bullet'
id = Column(Integer, primary_key=True)
slide_id = Column(Integer, ForeignKey('slide.id'))
position = Column(Integer)
text = Column(String)
Я понимаю, как звонить append()
с новыми объектами, и это прекрасно работает.
Но как мне обновить порядок существующего объекта?
Я попробовал это и получил некоторые трудные для понимания результаты.
existing_item = session.query(Bullet).filter(Bullet.id == bullet_id).one()
slide.bullets.insert(new_order, existing_item)
slide.bullets.reorder()
session.commit()
Кажется, нет документации, объясняющей, как обновить существующий объект. Я что-то упустил?