Hi all!

 

Apparently, a relation declared using sqlalchemy.ext.orderinglist does not
track sorting:

 

1.  class Parent(Base):

         .

2.      name = Column(Text)

3.      children = relationship('Child', backref='parent',

4.          collection_class=ordering_list('position', 1),

5.          order_by='Child.position'

6.      )

 

p = Parent(name='Thomas')

session.add(p)

lst = p.children

lst.append(Child(name="Mary"))

lst.append(Child(name="John"))

lst.append(Child(name="Kenny"))

session.commit()

 

p = session.query(Parent).get(1)

print(p.children) #prints [<Mary, position:1>, <John, position:2>, <Kenny,
position:3>]

 

p.children.sort(key=attrgetter('name'))

print(p.children) #prints [<John, position:2>, <Kenny, position:3>, <Mary,
position:1>]

 

session.commit() does not help the matters either. So, how do I initiate
re-numeration manually (except for iterating records and assigning them
numbers)?

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to