Ahhh, looks like I'm on rc4. Let me try final and see.
On Sun, 2009-01-11 at 13:10 -0500, Michael Bayer wrote:
> 0.5.0 final ?
>
> On Jan 11, 2009, at 12:21 PM, Darren Govoni wrote:
>
> >
> > Hi MikeCo,
> > I tried your example, and got this error from SA 0.5.
> >
> > ValueError: need more than 0 values to unpack
> >
> > Darren
> >
> > On Fri, 2009-01-09 at 20:33 -0800, MikeCo wrote:
> >> from sqlalchemy import *
> >> from sqlalchemy.orm import *
> >> from sqlalchemy.ext.declarative import declarative_base
> >>
> >> dbname = ''
> >> dburl = 'sqlite:///%s' % dbname
> >>
> >> # set up environment
> >> eng = create_engine(dburl, echo=False)
> >> meta = MetaData(bind=eng)
> >> Base = declarative_base(metadata=meta)
> >> Session = sessionmaker()
> >>
> >> # D self referential
> >> class D(Base):
> >> __tablename__ = 'D'
> >> id = Column(Integer, primary_key=True)
> >> id_d = Column(Integer, ForeignKey('D.id'))
> >> name = Column(Text)
> >> child = relation('D',
> >> backref=backref('parent', remote_side='D.id'))
> >> def __repr__(self):
> >> return '--<D> (id:%s->id_d:%s) %s --' % (self.id, self.id_d,
> >> self.name)
> >>
> >>
> >> def initdb():
> >> print '# create the database'
> >> meta.drop_all(checkfirst=True)
> >> meta.create_all()
> >> sess = Session()
> >>
> >> # insert some data for self-reference relationship
> >> for ddata in ('d-one', 'd-two'):
> >> dobj = D(name=ddata)
> >> sess.add(dobj)
> >> dobj2 = D(name=ddata+'-child1')
> >> dobj.child.append(dobj2)
> >> dobj2 = D(name=ddata+'-child2')
> >> dobj.child.append(dobj2)
> >> dobj3 = D(name=ddata+'-child2'+'-child3')
> >> dobj2.child.append(dobj3)
> >> sess.commit()
> >> sess.close()
> >>
> >> def printobj(obj, indent=''):
> >> # recursive list
> >> print '%s%s' % (indent, obj)
> >> if hasattr(obj, 'child'):
> >> for ch in obj.child:
> >> printobj(ch, indent=indent+' ')
> >>
> >> def listd():
> >> # retrieve and list
> >> sess = Session()
> >> print '# D->D'
> >> query = sess.query(D).filter(D.id_d==None).order_by(D.name)
> >> for dobj in query:
> >> printobj(dobj)
> >> sess.close()
> >>
> >> def tst3():
> >> # do stuff with self referential class D
> >> sess = Session()
> >> print "#switch parentage of name 'd-two-child1' to 'd-one'"
> >> print '# before'
> >> listd()
> >> child = sess.query(D).filter(D.name=='d-two-child1').one()
> >> parent = sess.query(D).filter(D.name=='d-one').one()
> >> eng.echo=True
> >> child.parent = parent
> >> child.name += ' MOVED'
> >> sess.commit()
> >> eng.echo=False
> >> print '# after'
> >> listd()
> >>
> >> initdb()
> >> tst3()
> >
> >
> > >
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---