Hi all! I'm trying to use sqlalchemy.ext.orderinglist as per instructions here <http://docs.sqlalchemy.org/en/rel_0_8/orm/extensions/orderinglist.html> , and but I've encountered a loss of data while trying to swap positions of related records inside a related property list. I thought it was related to sqlalchemy.ext.orderinglist, but when I excluded it the situation remained the same. Here is the full not-so-working example:
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, Text, ForeignKey sa_engine = create_engine("sqlite:///:memory:") Session = sessionmaker(bind=sa_engine) session = Session() Base = declarative_base() class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) name = Column(Text) children = relationship('Child', backref='parent') def __repr__(self): return self.name class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) name = Column(Text) parent_id = Column(Integer, ForeignKey('parent.id')) def __repr__(self): return self.name Base.metadata.create_all(sa_engine) p = Parent(name='Thomas') session.add(p) c1 = Child(name="Mary") c2 = Child(name="John") c3 = Child(name="Kenny") p.children.append(c1) p.children.append(c2) p.children.append(c3) session.commit() p = session.query(Parent).get(1) print(p.children) #prints [Mary, John, Kenny] p.children[1], p.children[2] = p.children[2], p.children[1] print(p.children) #prints [Mary, Kenny, John] session.commit() print(p.children) #prints [Mary, John]. Oh my God! They killed Kenny! -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.